自动化与Excel VBA

我尝试使用excel vba自动执行这个过程:

01

点击链接之后…打开下一个窗口:

02

我的代码:

 Sub WFM_test()

    表( “Preenchimento_Remedy”)。激活
     Wd =范围(“D02”)。值的URL地址


     Set objShell = CreateObject(“Shell.Application”)
    设置objAllWindows = objShell.Windows

    对于每个ow在objAllWindows中
         'MsgBox ow
        如果(InStr(1,ow,“Internet Explorer”,vbTextCompare))那么
             “MsgBox ow.Hwnd&”“&ow&”“&ow.locationURL
            如果(InStr(1,ow.LocationURL,Wd,vbTextCompare))那么
                设置objRemedy = ow
            万一
        万一
    下一个

    如果objRemedy是没有那么
    其他

        设置objPage = objRemedy.Document

       设置WFM = ObjPage.getElementsByClassName(“MenuEntryNameHover”)
        WFM.item(0)。点击

       万一

结束小组

给这个一个镜头。 它应该先select表格,然后select属于该表格的所有元素,然后根据InnerText进行匹配。

Sub WFM_test() Dim AllTableItems As Object Dim element As Object Sheets("Preenchimento_Remedy").Activate Wd = Range("D02").Value 'URL address Set objShell = CreateObject("Shell.Application") Set objAllWindows = objShell.Windows For Each ow In objAllWindows 'MsgBox ow If (InStr(1, ow, "Internet Explorer", vbTextCompare)) Then 'MsgBox ow.Hwnd & " " & ow & " " & ow.locationURL If (InStr(1, ow.LocationURL, Wd, vbTextCompare)) Then Set objRemedy = ow End If End If Next If Not objRemedy Is Nothing Then ' you need this (0) as you specify which class you want to select ' The classname is not a unique property Set Table = objRemedy.Document.getElementsByClassName("MenuTable")(0) 'Select all Elements in the table Set AllTableItems = Table.getElementsbyTagName("*") 'Iterate over the elements in the table and find the match For Each element In AllTableItems If element.InnerText = "Default WFM Group" Then element.Click Next i End If End Sub