Я провел много испытаний и перепробовал множество предложений, но, похоже, не смог заставить их работать. Я думаю, что это отчасти связано с тем, как настроена веб-часть процесса. В этой части 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