使用object作为函数的变量

时间:2013-11-26 17:50:23

标签: function vba object

我正在尝试创建一个名为wait的函数,它将使用一个对象:

Function wait(browser As Object)
            ' loop until the page finishes loading
            Do While browser.READYSTATE <> 4
            Loop
End Function

我也有:

Function GetIE() As Object
  On Error Resume Next
  Set GetIE = CreateObject("InternetExplorer.Application")
End Function

Dim appIE As Object
Set appIE = GetIE


sURL = "http://google.com"

wait (appIE)

但是我得到“运行时错误'424';需要对象。 有什么想法吗?

1 个答案:

答案 0 :(得分:2)

更改此行

wait (appIE)

wait appIE

解释:在VBA中,每当您调用具有参数的Function时,如果您没有对返回值执行任何操作,则必须在没有括号的情况下调用它。在这种情况下,由于代码没有返回任何内容,因此应将其定义为Sub而不是Function。同样的事情也适用于带有参数的Sub例程,即你必须在没有括号的情况下调用它,参数用逗号分隔。

进一步阅读(通过@doug):Quick VBA Tip: Parentheses