我的代码在给定某个参数的情况下检索HTML页面作为对象:
Public Sub MyPage(myparam)
Dim oHtml As HTMLDocument
Set oHtml = New HTMLDocument
With CreateObject("WINHTTP.WinHTTPRequest.5.1")
.Open "GET", "http://www.example.com" & myparam, False
.send
oHtml.body.innerHTML = .responseText
End With
End Sub
我定义了将使用相同对象的函数,因此,我希望最小化连接数。所以我想定义一个函数,如:
Function myFunction(myparam As String)
Call MyPage(myparam)
'code here
End Function
但这不起作用。当我将= myFunction键入单元格时,我得到#VALUE!错误。
如果我只是在函数内部输入子过程的代码,它就可以起作用,如:
Function myFunction(myparam As String)
Dim oHtml As HTMLDocument
Set oHtml = New HTMLDocument
With CreateObject("WINHTTP.WinHTTPRequest.5.1")
.Open "GET", "http://www.example.com" & myparam, False
.send
oHtml.body.innerHTML = .responseText
End With
'code here
End Function
但是,如上所述,这将需要相同的连接和对象用于不同的功能。
我该如何解决这个问题?感谢
答案 0 :(得分:1)
将我的评论转换为答案:
将oHtml variable
用作Public variable
。