vba Заполнить всплывающее окно IE данными Excel - PullRequest
0 голосов
/ 25 февраля 2019

Может кто-нибудь помочь мне отредактировать этот сабвуфер vba для работы во всплывающем окне?Я заполняю поля данными Excel.Этот подпункт работает для меня на других сайтах, но я не знаю, как заставить это работать для всплывающего окна.Я прочитал несколько других страниц на эту тему, но все еще относительно плохо знаком с vba и не достиг никакого прогресса.Я использую IE11.Я ценю это.

Это пример одного из полей, которые я пытаюсь заполнить.

<input class="form-control" id="firstName" type="text" maxlength="250" data-bind="value:firstName,disable:$parent.readOnly">


>         Private Sub FillWebForm_xx_AddNewEE()
>            
>             Dim ie As Object
>             Dim HWNDSrc As Long
>             Dim xSheetName As String
>             
>             
>             xSheetName = "Company"
>              
>             MsgBox "Open Internet Explorer and navigate to the webpage that contains the fields to be filled, then click Okay."
>              
>             'Need to edit this I think: if k-window-title = "New Participant"
>             
>             Set ie = GetIE("https://xxx")
>             
>             'make browser visible (if existing instance of IE)
>             ie.Visible = True
> 
>             'Get Window ID for IE so we can set it as activate window
>             HWNDSrc = ie.hwnd
>             
>             'Set IE as Active Window
>             SetForegroundWindow HWNDSrc
>          
>             'Add a new employee
>             ie.document.all("ssn").Value = ThisWorkbook.Sheets(xSheetName).Range("d32")
> 
>             ie.document.all("firstName").Value = ThisWorkbook.Sheets(xSheetName).Range("e32")
>             ie.document.all("lastName").Value = ThisWorkbook.Sheets(xSheetName).Range("g32")
>             'ie.document.all("suffix").Value = ThisWorkbook.Sheets(xSheetName).Range("h32")
>             ie.document.all("dateId").Value = Format$(ThisWorkbook.Sheets(xSheetName).Range("i32").Value,
> "mm/dd/yyyy")
>             
>                     ie.document.all("gender").Focus
>                     ie.document.all("gender").Value = ThisWorkbook.Sheets(xSheetName).Range("j32").Value
>                     'ie.document.all("gender").FireEvent ("onchange")
>                     'Do While ie.Busy = True Or ie.readyState <> 4: DoEvents: Loop
>             
>             ie.document.all("address1").Value = ThisWorkbook.Sheets(xSheetName).Range("k32")
>             ie.document.all("address2").Value = ThisWorkbook.Sheets(xSheetName).Range("l32")
>             ie.document.all("city").Value = ThisWorkbook.Sheets(xSheetName).Range("m32")
>             ie.document.all("state").Value = ThisWorkbook.Sheets(xSheetName).Range("n32")
>             ie.document.all("zip").Value = ThisWorkbook.Sheets(xSheetName).Range("o32")
>             'ie.document.all("country").Value = ThisWorkbook.Sheets(xSheetName).Range("p32")
>             'ie.document.all("email").Value = ThisWorkbook.Sheets(xSheetName).Range("tbd")
>             'ie.document.all("hireDate").Value = Format$(ThisWorkbook.Sheets(xSheetName).Range("q32").Value,
> "mm/dd/yyyy")
>     
>             Set ie = Nothing
>  
>         End Sub

Вот так выглядит всплывающее окно.

Pop-Up Window

Когда я щелкаю правой кнопкой мыши в поле Имя и нажимаю Проверить элемент, это то, что я вижу.

enter image description here

1 Ответ

0 голосов
/ 26 февраля 2019

По вашему изображению всплывающего окна. Похоже, это всплывающее окно модели, которое является частью этой веб-страницы, а не новым окном.

Пожалуйста, попробуйте обратиться к приведенному ниже примеру, который может помочь вам открыть новый экземплярIE и перейдите к определенной веб-странице и заполните данные во всплывающем окне.

Sub website()

On Error GoTo 0

Dim sURL As String
Dim oBrowser As InternetExplorer
Dim HTMLDoc As HTMLDocument
Dim oHTML_Element As IHTMLElement

sURL = "C:\Users\Administrator\Desktop\pop_up.html"

Set oBrowser = CreateObject("InternetExplorer.Application")


oBrowser.navigate sURL

Do Until oBrowser.readyState = 4
DoEvents
Loop
oBrowser.Visible = True


oBrowser.Document.getElementById("first_name").Value = "abcd added from VBA..."


'oBrowser.Document.getElementById("Login").Click


End Sub

Вывод:

enter image description here

Обратите внимание, что этоэто просто пример, чтобы дать вам идею.Кроме того, вам необходимо изменить пример кода в соответствии с вашими требованиями.

другие полезные ссылки:

(1) Автоматизация Internet Explorer (IE) с использованием VBA

(2) IE (Internet Explorer) Автоматизация с использованием Excel VBA

(3) Научитесь писать код Excel VBA для автоматизации вашего веб-браузера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...