简体   繁体   中英

VBA with Internet Explorer

Just need to have a better understanding of using the internet explorer object in VBA. So I want to click the following button with a code as following

<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>

My code is as following -

 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

but when I try to run it, it says

'Object doesn't support this property or method'.

I'm very new to this internet explorer object and javascript :(

Edit: I had changed the line to ' .Document.getelementsbyclass("urBtnEmph").Click' however still have the same warning.

Then I tried this '.Document.getElementById("DLG_VARIABLE_dlgBase_BTNOK").Click' and it shows 'Object variable or with block variable not set'. I had attached the html code for this button

在此处输入图片说明

Please check the Common VBA Methods & Properties used in web automation , you could use the getElementsByClassName or getElementById method to access web page element.

When using the getElementsByClassName method, it will return multiple elements with the same class name, so, if we want to get the special element, we could find it from the array list.

So, please modify your code as below:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM