用excelvba实现自动化
我尝试使用excel vba自动化此过程: 点击链接后。。。打开下一个窗口: 我的代码: Sub WFM_test() 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 objRemedy Is Nothing Then Else Set objPage = objRemedy.Document Set WFM = ObjPage.getElementsByClassName("MenuEntryNameHover") WFM.item(0).click End if End Sub 子WFM_测试() 床单(“先兆治疗”)。激活 Wd=范围(“D02”)。值的URL地址 设置objShell=CreateObject(“Shell.Application”) 设置objAllWindows=objShell.Windows 对于objAllWindows中的每个ow “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(“menuentrynamehaver”) WFM.item(0)。单击 如果结束 端接头用excelvba实现自动化,vba,excel,Vba,Excel,我尝试使用excel vba自动化此过程: 点击链接后。。。打开下一个窗口: 我的代码: Sub WFM_test() Sheets("Preenchimento_Remedy").Activate Wd = Range("D02").Value 'URL address Set objShell = CreateObject("Shell.Application") Set objAllWindows = objShell.Windows F
试试看。它应该首先选择表,然后选择作为该表一部分的所有元素,并基于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
试试看。它应该首先选择表,然后选择作为该表一部分的所有元素,并基于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
问题是…?如何用vba点击“脱脂WFM”?我尝试过:Set WFM=ObjPage.getElementsByClassName(“MenuEntryNameHover”).item(0)。单击不做任何事情。如果没有看到XML,很难知道这一点,我怀疑是否有人愿意在XML中为您找到变量,我是否可以建议您通过循环元素来找到名称?像这样:对于ieApp.Document.all范围(“A”&(i+1))中的每个元素。Value=elem i=i+1 NextI编辑的图像01!!查看html代码。问题是…?如何使用vba单击“Defaut WFM”?我尝试过:Set WFM=ObjPage.getElementsByClassName(“MenuEntryNameHover”).item(0)。单击不做任何事情。如果没有看到XML,很难知道这一点,我怀疑是否有人愿意在XML中为您找到变量,我是否可以建议您通过循环元素来找到名称?像这样:对于ieApp.Document.all范围(“A”&(i+1))中的每个元素。Value=elem i=i+1 NextI编辑的图像01!!查看html代码。太棒了!很高兴这有帮助。把它标记为公认的答案:)太好了!很高兴这有帮助。将其标记为已接受的答案:)