使用参数调用Excel VBA子例程

费利佩

我想创建一个接受范围作为参数的子例程。像这样的东西:

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捕获范围参数:

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章