[英]Calling excel VBA subroutine with arguments
我想创建一个接受范围作为参数的子例程。 像这样:
Sub Test(dataRange As Range)
Sheet2.Range("A1").Cells.value = dataRange.Cells(1, 1)
End Sub
但是,当我尝试在Excel上选择范围并运行它时,出现“参考无效”错误。
注意:我试图通过进入“开发人员”标签并单击“宏”按钮来运行此程序。 在其中输入Test($A$2:$B$4)
,然后出现错误。
有没有一种方法可以从Excel电子表格中调用自定义VBA子例程并将参数传递给它?
谢谢
尽管这不是一个普遍的答案,但它应该可以满足您的目的:
Sub Test(Optional dataRange As Range = Nothing)
If dataRange is Nothing then Set dataRange = Range(Selection.Address)
Sheet2.Range("A1").Cells.value = dataRange.Cells(1, 1)
End Sub
从宏菜单中,只需键入Test
然后单击“运行”按钮。
这将使用当前Selection
作为数据范围。
或者,使用InputBox
捕获range参数:
Sub Test2()
Dim dataRange as Range
Set dataRange = Application.InputBox("Select range", Type:=8)
If dataRange is Nothing then Exit Sub
Sheet2.Range("A1").Cells.value = dataRange.Cells(1, 1)
End Sub
您可能需要在以下范围内使用引号:
测试(范围(“ $ A $ 2:$ B $ 4”))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.