如何在 Excel VBA 中运行带参数的 Sub?

如何在 Excel VBA 中运行带参数的 Sub?

我在 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

通过传递范围作为参数来调用第一个过程。

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

相关内容