簡體   English   中英

帶有 Internet Explorer 的 VBA

[英]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 方法和屬性,您可以使用getElementsByClassNamegetElementById方法來訪問網頁元素。

當使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM