У меня есть процедура в Excel VBA, которая является необходимым параметром диапазона, а также будет производить выходной диапазон именно в активной ячейке.

Код выглядит так:

Sub test(oSource as Range)
  Dim oTarget As Range
  Dim oCell As Range

  Set oTarget = Range(ActiveCell, ActiveCell.Offset(0, 0))

  For Each oCell In oSource
    If oCell.Value <> "" Then
        oTarget.Activate

        oTarget.Offset(0, 0).Value = oCell.Text
        oTarget.Offset(0, 1).Value = oCell.Text

        Set oTarget = oTarget.Offset(1, 0)
    End If
  Next
End Sub

Как я это называю? Я уже пытаюсь использовать такую функцию

Function(SourceRange as Range)
   Call test(SourceRange)
End Function

Но это не работает, потому что test() выдаст диапазон в активной ячейке и заменит функцию, а Excel выдаст предупреждение о циклическом значении. Я не могу зарегистрировать его в макросе, кнопка создания всегда отключена, когда я нажимаю кнопку воспроизведения. Так как я называю этот Sub?

1 ответ1

0

Вы вызываете первую процедуру, передавая диапазон в качестве аргумента.

test(ThisWorkbook.Worksheet("Sheet1").Range("A1"))

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .