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