Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Создание функции и обращение к ней - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Создание функции и обращение к ней (Макросы/Sub)
Создание функции и обращение к ней
Дмитрий_С Дата: Понедельник, 19.01.2015, 11:01 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день!

Подскажите, пожалуйста, как правильно создать функцию и ее вызвать.

У меня есть программный код, который выполняется для значения к примеру "Ручка", но мне нужно выполнить тоже самое только для "Карандаш", а потом для "Ластик". я так полагаю, что это будет удобно сделать через function, но к сожалению не могу уловить полной сути как правильно ей пользоваться. Сам программный код не возвращает результат, а работает как редактирование листа для значения Ручка, потом для Карандаш, потом для Ластик. Благодаря функции хочу сократить длину программного кода
[vba]
Код
Sub process()
For i=1 to 3
If item="Ручка" then
       Row(i).Copy
next i
End Sub
[/vba][moder]Правила п.3. Без файла-примера мало что понятно. И вопрос не общего характера.
 
Ответить
СообщениеДобрый день!

Подскажите, пожалуйста, как правильно создать функцию и ее вызвать.

У меня есть программный код, который выполняется для значения к примеру "Ручка", но мне нужно выполнить тоже самое только для "Карандаш", а потом для "Ластик". я так полагаю, что это будет удобно сделать через function, но к сожалению не могу уловить полной сути как правильно ей пользоваться. Сам программный код не возвращает результат, а работает как редактирование листа для значения Ручка, потом для Карандаш, потом для Ластик. Благодаря функции хочу сократить длину программного кода
[vba]
Код
Sub process()
For i=1 to 3
If item="Ручка" then
       Row(i).Copy
next i
End Sub
[/vba][moder]Правила п.3. Без файла-примера мало что понятно. И вопрос не общего характера.

Автор - Дмитрий_С
Дата добавления - 19.01.2015 в 11:01
Rioran Дата: Понедельник, 19.01.2015, 11:32 | Сообщение № 2
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
Дмитрий_С, здравствуйте.

Подозреваю, что этот код вы хотите использовать внутри другого макроса. Существует два основных способа для обращения к заранее подготовленным кускам кода: через обращение к функции, что больше всего подходит, когда надо вернуть какие-то значения, и через обращение к макросу же. В Вашем случае Вы проводите некоторые действия, поэтому лучше обращаться как к макросу, а не функции. Выглядеть это может примерно так:

[vba]
Код
Sub Main()
     'Some code...
     Call process(Range("B2:B4"))
     'Some code...
End Sub

Sub process(RngX As Range)
     Dim i As Long
     For i = 1 To 3
           If RngX.Cells(i, 1).Value = "Ручка" Then Rows(i).Copy
     Next i
End Sub
[/vba]


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279


Сообщение отредактировал Rioran - Понедельник, 19.01.2015, 11:34
 
Ответить
СообщениеДмитрий_С, здравствуйте.

Подозреваю, что этот код вы хотите использовать внутри другого макроса. Существует два основных способа для обращения к заранее подготовленным кускам кода: через обращение к функции, что больше всего подходит, когда надо вернуть какие-то значения, и через обращение к макросу же. В Вашем случае Вы проводите некоторые действия, поэтому лучше обращаться как к макросу, а не функции. Выглядеть это может примерно так:

[vba]
Код
Sub Main()
     'Some code...
     Call process(Range("B2:B4"))
     'Some code...
End Sub

Sub process(RngX As Range)
     Dim i As Long
     For i = 1 To 3
           If RngX.Cells(i, 1).Value = "Ручка" Then Rows(i).Copy
     Next i
End Sub
[/vba]

Автор - Rioran
Дата добавления - 19.01.2015 в 11:32
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Создание функции и обращение к ней (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!