1

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

  1. 将 activeCell 设置为 Range 变量
  2. 将该变量传递给子例程
  3. 用 activeCell 做点什么

我试图做的是

Sub myMacro()

    Dim myCell As Range

    Set myCell = ActiveCell

    mySub(myCell)

End Sub

Sub mySub(cell As Range)
    ' Do something
End Sub

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

4

2 回答 2

3

将参数传递给函数时,不需要使用括号。例如:

     mySub myCell

您也可以使用 Lance sugention 并使用CallAND 括号。(在 VBA 编辑器中按 F1Call以获得更多信息)

     Call mySub(myCell)

无论哪种方式都是正确的,但是在学习 VBA 时,第一个表示法可能会更有帮助,因为论坛中的大部分答案都使用第一个表示法。

于 2013-03-05T08:29:02.013 回答
0

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

Call mySub(myCell)
于 2013-03-05T07:56:50.857 回答