如何使用Range变量作为子例程参数

时间:2013-03-05 07:35:18

标签: excel vba excel-vba

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

  1. 将activeCell设置为Range变量
  2. 将该变量传递给Sub例程
  3. 使用activeCell执行某些操作
  4. 我试图做的是

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

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

2 个答案:

答案 0 :(得分:3)

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

     mySub myCell

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

     Call mySub(myCell)

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

答案 1 :(得分:0)

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

Call mySub(myCell)