私の会社のオートメーションを作成しようとしたとき、私は困難を偶然見つけましたが、私はそれを上回ることはできません。私はこのサイトや他のサイトで多くの記事を読んだが、答えは見つからなかった。ドロップダウンリストを永久に変更する方法
基本的に私の会社が使用するインターネットアプリケーションをクリックすると、ドロップダウンリストが表示されます。ユーザーは10ポジションで値を "Read"から "All"に変更する必要があります。そして、アプリケーションは変更を認識し、フォームを保存することができます。
私は特定のフィールドをクリックしてドロップダウンをアクティブにし、このドロップダウンから正しいオプションを選択するコードを書くことができました。しかし、私はそれらの10ドロップダウンのすべてを介してループすると、効果は表示されません。
面白い部分があります。私が "debug.print objinputs.outerHTML"にブレークポイントを設定し、マクロを続行することができるようになると、変更が行われ、すべてが正常です。しかし、ブレークポイントがないと、何かが間違っていて、すべての値が "Read"に戻ります。ここで何が問題になるのか誰にも知らせてください。
これ以上の情報が必要な場合は、お知らせください。
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