Я не очень хорош в разработке, но мне нужно выполнить эту задачу для небольшого проекта автоматизации. Ситуация такова, что я должен войти в базу данных и распечатать некоторые данные, чтобы преуспеть, это для проверки, удалены ли данные или нет.
Что я хочу от кода?
Нажав на кнопку макроса в Excel:
- Войдите на сайт [x]
- Поиск по указанному номеру [x]
- Вывести обратно в Excel состояние элемента []
- Повторять с шага 2 до тех пор, пока в столбце A не появятся числа (которые l oop?) []
https://imgur.com/u4IhpW7
Как видно на скриншоте в Excel, под ячейкой A9 начинается список чисел. Под ячейкой B9 я хочу, чтобы мои данные были распечатаны для каждого из чисел слева.
Так что мне уже удалось войти в систему и найти первый номер.
Здесь у весь код:
Sub Login()
Dim ie As New SHDocVw.InternetExplorer
Dim HTMLDoc As MSHTML.HTMLDocument
Dim HTMLInput As MSHTML.IHTMLElement
ie.Visible = True
ie.Navigate Sheet1.Range("B2").Text
Do While ie.ReadyState <> READYSTATE_COMPLETE
DoEvents
Loop
Set HTMLDoc = ie.Document
'Setting Username to a specific value
Set HTMLInput = HTMLDoc.getElementById("ctl00_WebPartManager1_gwpLogin1_Login1_UserName")
HTMLInput.Value = Sheet1.Range("B3")
'Setting Password to a specific value
Set HTMLInput = HTMLDoc.getElementById("ctl00_WebPartManager1_gwpLogin1_Login1_Password")
HTMLInput.Value = Sheet1.Range("B4")
'Click to login
Set HTMLInput = HTMLDoc.getElementById("ctl00_WebPartManager1_gwpLogin1_Login1_LoginButton")
HTMLInput.Click
MsgBox "Login Succesfull" & vbCrLf & "Press Ok to check LIAB"
While ie.Busy
DoEvents
Wend
Set HTMLInput = HTMLDoc.getElementById("ctl00_SearchSection_ObjectSearch_txtEMail")
HTMLInput.Value = Null
Set HTMLInput = HTMLDoc.getElementById("ctl00_SearchSection_ObjectSearch_txtCustomerID")
HTMLInput.Value = Sheet1.Range("A10")
Set HTMLInput = HTMLDoc.getElementById("ctl00_SearchSection_ObjectSearch_SearchButton")
HTMLInput.Click
While ie.Busy
DoEvents
Wend
'On Error Resume Next
End Sub
Вторая часть может быть неправильной, но именно так мне удалось найти это число. Я должен выяснить, как l oop, пока в столбце A не появятся числа, начиная с A9.
Так выглядит сайт
https://imgur.com/4GJQ4oF
Итак, мне нужно напечатать в столбце B, начиная с B9, внутренний текст «Status». Также есть условие, которое должно быть выполнено, и если внутренний текст состояния «Удален», но внутренний текст «Имя» не пуст, то выведите «Ошибка» в столбце B.
Таким образом, соответствующая таблица имеет теги без идентификатора, поэтому я не знаю, как ими манипулировать. Еще одна вещь, которую стоит упомянуть, это то, что если поля не заполнены, внутренний текст отображается как:
;
Заранее благодарен за любую помощь и внимание, чтобы прочитать все это .
Привет,
Алессио
Обновление изменений:
'Declared the new variable
Dim iC as Integer
'........All the login part here........'
MsgBox "Login Succesfull" & vbCrLf & "Press Ok to check LIAB"
While ie.Busy
DoEvents
Wend
For iC = 10 To 29
'Now able to loop through a specific amount of cells, still not dynamic, still no idea how to pull the data from the td tags
Set HTMLInput = HTMLDoc.getElementById("ctl00_SearchSection_ObjectSearch_txtCustomerID")
HTMLInput.Value = Sheet1.Range("A" & iC)
Set HTMLInput = HTMLDoc.getElementById("ctl00_SearchSection_ObjectSearch_SearchButton")
HTMLInput.Click
While ie.Busy
DoEvents
Wend
Next
'On Error Resume Next
End Sub'