[英]VBA with Internet Explorer
只需要更好地了解在 VBA 中使用 Internet Explorer 對象即可。 所以我想點擊下面的按鈕,代碼如下
<a id="DLG_VARIABLE_dlgBase_BTNOK" ct="B" st="" href="javascript:void(0);" class="urBtnEmph" ocl="sapbi_page.sendCommandArray([['TARGET_DIALOG_REF','DLG_VARIABLE',0],['BI_COMMAND_TYPE','OK',0]],event);" onkeydown="ur_Button_keypress(event);" onclick="ur_Button_click(event);" style="text-align:center;overflow:visible;">OK</a>
我的代碼如下 -
Dim IE As InternetExplorer 'Reference to Microsoft Internet Controls
Set IE = New InternetExplorer
With IE
.Visible = True
.Navigate2 "Somewebsite"
.Document.getelemetbyclass("urBtnEmph").Click
End With
End Sub
但是當我嘗試運行它時,它說
'對象不支持此屬性或方法'。
我對這個 Internet Explorer 對象和 javascript 很陌生:(
編輯:我已將行更改為 '.Document.getelementsbyclass("urBtnEmph").Click' 但是仍然有相同的警告。
然后我嘗試了這個'.Document.getElementById("DLG_VARIABLE_dlgBase_BTNOK").Click',它顯示'對象變量或塊變量未設置'。 我附上了這個按鈕的 html 代碼
請檢查Web 自動化中使用的通用 VBA 方法和屬性,您可以使用getElementsByClassName或getElementById方法來訪問網頁元素。
當使用getElementsByClassName方法時,它會返回多個具有相同類名的元素,因此,如果我們想要獲取特殊元素,我們可以從數組列表中找到它。
因此,請修改您的代碼如下:
Public Sub ClickTest()
Dim ie As Object
Set ie = CreateObject("InternetExplorer.Application")
With ie
.Visible = True
.Navigate2 "<website url>"
While .Busy Or .readyState <> 4: DoEvents: Wend
'ie.Document.getElementbyId("DLG_VARIABLE_dlgBase_BTNOK").Click // it also work well. find element by id
ie.Document.getElementsByClassName("urBtnEmph")(0).Click
End With
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.