如何使用Rangevariables作为子程序参数

我有一个关于VBA子例程的基本问题。 我想要做的是

  1. 将activeCell设置为Rangevariables
  2. 将该variables传递给Sub例程
  3. 用activeCell做点什么

我试图做的是

Sub myMacro() Dim myCell As Range Set myCell = ActiveCell mySub(myCell) End Sub Sub mySub(cell As Range) ' Do something End Sub 

我不断收到“对象需要”的错误。
这里有什么问题?

当你传递参数给一个函数时,你不需要使用括号。 例如:

  mySub myCell 

您也可以使用Lance sugention并使用Call和括号。 (在VBA编辑器中按F1 Call以获取更多信息)

  Call mySub(myCell) 

无论哪种方式都是正确的,但是在学习VBA的时候,第一个符号可能会更有帮助,因为论坛中答案的绝大多数使用了第一个符号。

您需要在子例程上使用Call语句。

 Call mySub(myCell)