私は誰かが助けることを望んでいます。私はエクセルに保存された情報で数十回または数百回完成しなければならないウェブフォームを満たすプロセスをスピードアップしようとしています。VBA-Excel:IEウィンドウでのフォームの記入
これを行うには、IEウィンドウを開き、特定のWebサイトのログインページ(このビットを見つけ出しました)に移動するためのボタンが1つ必要です。ユーザーはログインして、記入する必要のあるフォームに移動できます。その後、ユーザーがExcelページに戻って、別のボタンをクリックすると、自動的にいくつかのドロップダウンとテキストボックスが表示されます。
Excel内では、フォームに移動する必要のある特定の情報をユーザーが検索できるようにするコードが用意されています。ボタンをクリックして転送するだけです。コードの最初のビットがちょうどこのです:私は悩みを抱えている
Public IE As Object
Public Sub OpenIE()
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
IE.Navigate "loginpage url"
End Sub
ユーザーがログインし、フォームにナビゲートした後、しかし、同じIEウィンドウ異なる機能へのアクセスを持っています。今、私はこれを持っている:私はこのフォーラムの他の記事から得ている、と私はこれで初心者のビットだが、問題はそれがいくつかのためであると思われるものの
Sub FillMacro()
Dim sh As Object, oWin As Object
Set sh = CreateObject("Shell.Application")
For Each oWin In sh.Windows
If TypeName(oWin.document) = "HTMLDocument" Then
Set IE = oWin
Exit For
End If
Next
IE.Visible = True
Application.Wait (Now + TimeValue("00:00:01"))
IE.document.getElementById("idec").Value = "John"
Application.Wait (Now + TimeValue("00:00:01"))
IE.document.getElementById("idee").Value = "Smith"
End Sub
ほとんどを理由VBAは、LastNameまたはFirstNameのIDを持つテキストボックスを見つけることができません。さらに、IE.Visible = TrueはIEウィンドウをフォアグラウンドに戻さないので、それを行う適切な行を見つけようとしています。私は、コードを実行しようとすると、私が「オブジェクトが必要です」のエラーが表示されます。
IE.document.getElementById("idec").Value = "John"
私はこのサイトを検索しようとしたと見ていきますが、その間に任意の助けをいただければ幸いです! Internet Explorerのページ
は、ここで私が記入しようとしている最初のテキストボックスの行です:
<input name="componentListPanel:componentListView:1:component:patientLastNameContainer:patientLastName" class="input300" id="idec" type="text" maxlength="60" value="">
そのページのフレーム/ iframeはどれですか? –
実際のWebフォームURLを提供できますか?また、IEの自動化の代わりにXHRを使用しようとするかもしれません、手動のフォームの提出の後にIEの開発者ツールのネットワークタブで要求を調べて、それを再現する必要があります。 – omegastripes
フォームは実際にiframe内にあります。 URLまでは、フォームを表示するためにログインする必要があるので、できるかどうか、またはどうすればよいか分かりません。 – WK145