Я надеюсь, что кто-то может помочь. Я пытаюсь ускорить процесс заполнения веб-формы, которая должна быть заполнена десятками или сотнями раз с информацией, хранящейся в excel.VBA-Excel: заполнение форм в окне IE
Для этого мне нужна одна кнопка, чтобы открыть окно IE и перейти на страницу входа определенного веб-сайта (я понял, что это бит). Затем пользователь может войти в систему и перейти к форме, которая должна быть заполнена. Затем я хочу, чтобы пользователь мог вернуться на страницу 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. Более того, 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="">
Любые фреймы/фреймы на этой странице? –
Не могли бы вы предоставить фактический URL веб-формы? Кроме того, вы можете попытаться использовать XHR вместо автоматизации IE, вам нужно просто изучить запрос на вкладке сети инструментов разработчика IE после подачи руководства и воспроизвести его. – omegastripes
Форма находится в iframe на самом деле. Что касается URL-адреса, вам нужно войти в систему, чтобы просмотреть форму, поэтому я не уверен, могу ли я это сделать, или как – WK145