Я ищу код, который можно зациклить массив заголовков с именами классов, но он не должен включать имя тега или идентификатор. Это просто для того, чтобы гарантировать, что если какого-либо класса не существует, соответствующая ячейка должна быть оставлена пустой, а следующий элемент должен быть скопирован.
Я пытался добавить массив заголовков, как
headers = Array("size", "features", "promo", "in store", "web")
Но это должен быть цикл с именем тега, который я не хочу.
также хочу промо (имя класса "promo_offers
") '1st Month Free!' в строке 2 проблема заключается в том, что это промо предоставляется только для определенных ячеек - поэтому данные вводят в заблуждение, и я получаю промо в 1-й ячейке 4, а затем получаю ошибку.
Однако я хочу скопировать промо только для тех единиц, где указана промо-информация, иначе ячейка должна быть пустой или необходимо установить любое другое значение. Ниже приведен код ...
Пожалуйста, предложите, как создать код.
Sub GetClassNames()
Dim html As HTMLDocument
Dim objIE As Object
Dim element As IHTMLElement
Dim ie As InternetExplorer
Dim elements As IHTMLElementCollection
Dim result As String 'string variable that will hold our result link
Dim count As Long
Dim erow As Long
'initiating a new instance of Internet Explorer and asigning it to objIE
Set objIE = New InternetExplorer
'make IE browser visible (False would allow IE to run in the background)
objIE.Visible = True
'navigate IE to this web page (a pretty neat search engine really)
objIE.navigate "https://www.allstorageonline.com/storage-units/texas/amarillo/all-storage-hardy-115423/#utm_source=GoogleLocal&utm_medium=WWLocal&utm_campaign=115423"
'wait here a few seconds while the browser is busy
Do While objIE.Busy = True Or objIE.readyState <> 4: DoEvents: Loop
count = 0
Set html = objIE.document
Set elements = html.getElementsByClassName("unit_size medium")
For Each element In elements
If element.className = "unit_size medium" Then
erow = Sheet2.Cells(Rows.count, 1).End(xlUp).Offset(1, 0).Row
Cells(erow, 1) = html.getElementsByClassName("unit_size medium")(count).innerText
Cells(erow, 2) = html.getElementsByClassName("promo_offers")(count).innerText
count = count + 1
End If
Next element
End Sub
Для чего бы то ни было, т. Е. Промо равно null, соответствующая ячейка должна быть оставлена пустой, следующий элемент должен быть скопирован