VBA для заполнения одной ячейки на веб-странице с помощью списка Excel - PullRequest
0 голосов
/ 12 ноября 2018

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

В коде, который мне нужен, используется документ Excel с 2 столбцами - в столбце A содержится список гиперссылок на каждый профиль пользователя в веб-системе, в столбце B - код пользователя для каждой гиперссылки.

Поэтому мне нужен код, который: 1. Кликает первую гиперссылку в столбце листа Excel A & открывает в IE на новой странице 2. Дождитесь загрузки страницы 3. В столбце B листа Excel скопируйте первый код в списке 3. На открытой странице IE, вкладка определенное количество раз, пока не будет достигнуто правильное поле (так как выбор поля ввода не работает) 4. Вставьте скопированный код в поле 5. Sendkeys Введите, который сохраняет данные в поле 6. Дождитесь загрузки страницы 7. Закройте страницу IE 8. Цикл, чтобы перейти к следующей гиперссылке в списке и повторять процесс до тех пор, пока список не закончится

Если кто-нибудь может помочь, я был бы очень признателен! Я новичок в VBA, поэтому любой совет, кодирование было бы фантастическим.

Большое спасибо заранее! Майк

Вот что я попробовал (что не работает)

Sub submitFeedback3()

Application.ScreenUpdating = False

Set links = Sheets("Links List")
Set linkList = links.Range("A1", links.Range("A" & Rows.Count).End(xlUp))

Set ID = Sheets("Links List")
Set IDList = ID.Range("B1", ID.Range("B" & Rows.Count).End(xlUp))
Application.DisplayAlerts = False
StartTime = Now
    For Each URL In linkList    'open each link
        Shell (browserPath & " " & URL.Value)
    For Each Cel In IDList
        SendKeys "^c"      '= copy
        Set IE = Nothing

Application.SendKeys "{TAB}", True
Application.SendKeys "{TAB}", True
Application.SendKeys "{TAB}", True
Application.SendKeys "{TAB}", True
Application.SendKeys "{TAB}", True
Application.SendKeys "{TAB}", True
Application.SendKeys "{TAB}", True
Application.SendKeys "{TAB}", True
Application.SendKeys "{TAB}", True
Application.SendKeys "{TAB}", True
Application.SendKeys "{TAB}", True
Application.SendKeys "{TAB}", True
Application.SendKeys "{TAB}", True
Application.SendKeys "{TAB}", True


    SendKeys "^v"
    SendKeys ("{ENTER}")
    Next Cel
    Next URL


Application.DisplayAlerts = True
End Sub

Обновленный код:

Option Explicit
Const browserPath As String = "C:\Program Files\Internet 
Explorer\iExplore.exe"

Dim IE As Object
Dim LatestDate, StartTime
Dim links As Worksheet, linkList As Range, ID As Worksheet, IDList As Range, 
URL 
As Range, Cel As Range

Sub submitFeedback3()

Application.ScreenUpdating = False

Set links = Sheets("Links List")
Set linkList = links.Range("A1", links.Range("A" & Rows.Count).End(xlUp))

Set ID = Sheets("Links List")
Set IDList = ID.Range("B1", ID.Range("B" & Rows.Count).End(xlUp))



 Application.DisplayAlerts = False
  StartTime = Now
    For Each URL In linkList    'open each link

        Shell (browserPath & " " & URL.Value)
    While IE.Busy
        DoEvents
     Wend
    For Each Cel In IDList

        SendKeys "^c"      '= copy
    With IE

    .getElementById ("employee.dealerPortalUserId")


    SendKeys "^v"
    SendKeys ("{ENTER}")
    End With


    Next Cel
    Next URL


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