Страницы: 1
RSS
Как преобразовать часть кода в подпрограмму с параметрами?
 
Добрый день.
Подскажите как правильно обратится к подпрограмме, и следовательно как задать в ней параметры?
Значит задачка: есть следующий код:
Код
Set findT = Worksheets(i).Range("B:D").Find("Текст", , xlValues, xlPart)
...
Set cellcop_2_ = findT.Offset(, 4)
Union(cellcop_2_, cellcop_2_.Offset(, 2), cellcop_2_2, cellcop_2_2.Offset(, 2)).Copy
Хочется вторую часть (с копированием ячеек) убрать в подпрограмму, которой нужно будет передавать параметры findT и параметры Offset
 
Если правильно понял Вашу интерпретацию Подпрограмма, то так.
Код
Sub test()
    Set findT = Worksheets(i).Range("B:D").Find("Текст", , xlValues, xlPart)
    ''...
    Set cellcop_2_ = findT.Offset(, 4)
    GoSub ToCopy  'вызов под программы в теле процедуры
    Exit Sub
ToCopy:
 
    Union(cellcop_2_, cellcop_2_.Offset(, 2), cellcop_2_2, cellcop_2_2.Offset(, 2)).Copy
   Return
 End Sub


Поправил , Return не в то место прописал.
Изменено: doober - 29.01.2019 18:37:18
 
Цитата
venrt написал:
cellcop_2_2
Это глобальная переменная или ее тоже нужно передавать как параметр?
 
cellcop_2_... у меня задаются ячейки на листе со своим смещением.
Вот как раз значение смещения и хотелось передавать подпрограмме:
Код
Set cellcop_2_ = findT.Offset(, X)
Union(cellcop_2_, cellcop_2_.Offset(, Y), cellcop_2_2, cellcop_2_2.Offset(, Y)).Copy
....
 
venrt,
Код
Sub Venrt(findT, offset1, offset2, cellcop_2_2)
Dim cellcop_2_
  Set cellcop_2_ = findT.Offset(, offset1)
  Union(cellcop_2_, cellcop_2_.Offset(, offset2), cellcop_2_2, cellcop_2_2.Offset(, offset2)).Copy
End Sub

'вызов
  Venrt Worksheets(i).Range("B:D").Find("Текст", , xlValues, xlPart), 4, 2, cellcop_2_2
Изменено: Казанский - 29.01.2019 20:09:51
 
Казанский, то что хотелось, спасибо
Страницы: 1
Наверх