当我试图为我的公司创建一个自动化时,我遇到了困难,我无法超越。我在这个和其他网站上看了很多文章,但我没有找到答案。
所以基本上我有一个下拉列表,点击我公司使用的互联网应用程序。用户必须将值从“读取”更改为“全部”10个位置。然后应用程序确认更改并允许保存表单。
当我设法编写一个代码,点击特定字段以激活下拉列表,并从此下拉列表中选择正确的选项。然而,当我循环通过所有这10个下拉列表时,效果不明显。
有一个有趣的部分。每当我在“debug.print objinputs.outerHTML”上放置一个断点然后允许宏继续进行更改就会发生并且一切都很好。但是没有断点就会出现问题,并且所有的值都会回到“读取”状态。有谁知道这里可能是什么问题?
如果您需要更多信息,请告诉我。
Set ifrm = Nothing
Do Until ifrm.Length > 0
Set ifrm = IE.Document.getElementsByTagName("iframe")(0).contentDocument.getElementsByTagName("iframe")(1).contentDocument.getElementsByTagName("iframe")(0).contentDocument.getElementsByTagName("iframe")(0).contentDocument.getElementsByTagName("tbody")(znacznik - 1).Document.getElementsByTagName("td")
Loop
Counter = 1
For Each ele In ifrm
Worksheets("Test").Cells(Counter, 1) = ele.outerHTML
Counter = Counter + 1
If InStr(ele.outerHTML, "<td title=" & Chr(34) & "Read") Then
ele.Click
Do Until Not ele.Busy And ele.readyState = READYSTATE_COMPLETE: Loop
Set objInputs = Nothing
Set objInputs = IE.Document.getElementsByTagName("iframe")(0).contentDocument.getElementsByTagName("iframe")(1).contentDocument.getElementsByTagName("iframe")(0).contentDocument.getElementsByTagName("iframe")(0).contentDocument.getElementsByTagName("tbody")(znacznik - 1).Document.getElementsByTagName("select")(3)
objInputs.Value = "All"
Debug.Print objInputs.Value
Do Until Not IE.Busy And IE.readyState = READYSTATE_COMPLETE: Loop
End If
Next
答案 0 :(得分:0)
我找到了解决方案。 它不是最优雅的,但它的工作原理足以满足我的需求。
我添加了
CreateObject("WScript.Shell").Popup "Just Wait", 1, "Waiting"
价值变化之后它就成功了。我很想知道为什么会这样,为什么这个“技巧”解决了这个问题。