将范围作为函数parameter passing
我正在写一个函数,需要传入一个指定的范围,但是当我调用这个函数的时候,我总是收到一个错误。 这里有一些示例代码 – 函数中的代码是不重要的,因为我想要做的就是能够使用范围内的任何内容。
我的声明:
Sub exampleFunction (exampleRange as Range) exampleRange.Borders(xlEdgeLeft).Weight = xlMedium End Sub
但是,当我尝试用这个代码调用函数:
Dim myRange As Range Set myRange = Sheet1.Range ("C2") exampleFunction (myRange) ' <-- This is what doesn't work
我收到一个错误,说“编译错误:预期:=”。
在函数调用期间,我需要做什么来正确传递myRange?
exampleFunction (myRange)
应该
exampleFunction myRange
或多个参数:
exampleFunction myRange, myString, myInt
只有在方法返回值或使用Call
关键字时才使用()。
如果你在()
包装你的参数 – 而你没有调用一个函数或者使用调用 – 那么VBA将在把它传递给你的方法之前首先评估这个参数 – 你经常不需要这个参数。
您可以在即时窗口中看到此评估的影响:
? typename( Range("A1") ) '>> "Range" ? typename( (Range("A1")) ) '>> "Double" (if A1 has a numeric value) ' "String" (if A1 has a text value)