1
調用Sub過程
我的代碼檢索一個HTML頁面爲對象,給予一定的參數:Excel的VBA:從功能
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
但是,正如上面提到的,這將需要不同的功能相同的連接和對象。
我該如何解決這個問題?由於
這兩種方法使用相同數量的資源。我沒有看到差異。 – jacouh
你有沒有把'oHtml'用作'公共變量'? –
@KazJaw Bingo,就是這麼簡單! –