使用参数调用excel VBA子例程

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

Sub Test(dataRange As Range) Sheet2.Range("A1").Cells.value = dataRange.Cells(1, 1) End Sub 

但是,当我尝试在Excel上select范围并运行它时,我得到一个“引用无效”错误。

注意:我试图通过进入开发人员选项卡并单击“macros”button来运行此。 在那里我inputTest($A$2:$B$4) ,然后我得到错误。

有没有办法从Excel电子表格中调用一个自定义的VBA子例程并将parameter passing给它?

谢谢

虽然这不是一个普遍的答案,但它应该适用于你的目的:

 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 

从macros菜单中,只需inputTest然后点击“运行”button。

这将使用当前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 

你需要引用范围:

testing(范围( “$ A $ 2:$ B $ 4”))