Вы не можете скопировать макрос для очистки веб-страниц для своих целей. Каждая страница имеет собственную структуру кода HTML. Таким образом, вы должны написать для каждой страницы свой собственный макрос веб-очистки.
Я не могу объяснить все о веб-очистке с VBA здесь. Пожалуйста, начните свою регистрацию для получения информации с "Excel vba Web Scraping" и "Document Object Model". Далее вам нужно знать о HTML и CSS. В лучшем случае также о JavaScript:
Сообщение об ошибке пользовательский тип не определен ocours, потому что вы используете раннее связывание без ссылки на библиотеки Microsoft HTML Object Библиотека и Microsoft Inte rnet Элементы управления . Вы можете прочитать здесь, как установить ссылку через Инструменты -> Ссылки ... и о различиях между ранним и поздним связыванием Раннее связывание v / s Позднее связывание , а также более подробную информацию от Microsoft Использование раннего и позднего связывания в Automation
Чтобы получить цены по указанному URL, вы можете использовать следующий макрос. Я использую позднюю привязку:
Option Explicit
Sub myfile()
Dim IE As Object
Dim url As String
Dim tagElements As Object
Dim element As Object
Dim item As Object
Dim lastRow As Long
lastRow = ActiveSheet.UsedRange.Rows.Count + 1
url = "https://wtb.app.channeliq.com/buyonline/D_nhoFMJcUal_LOXlInI_g/TOA-60?html=true"
Set IE = CreateObject("internetexplorer.application")
IE.navigate url
IE.Visible = True
Do: DoEvents: Loop Until IE.readyState = 4
Set tagElements = IE.document.getElementsByClassName("ciq-online-offer-item ")
For Each element In tagElements
Set item = element.getElementsByTagName("td")(1)
ActiveSheet.Cells(lastRow, 1).Value = Trim(item.innerText)
lastRow = lastRow + 1
Next
IE.Quit
Set IE = Nothing
End Sub
Изменить на секунду Пример: Новая ссылка ведет к предложению. Я предполагаю, что цена продукта должна быть получена. Для этого не нужен l oop. Вам просто нужно выяснить, в каком сегменте HTML цена, а затем вы можете решить, как ее получить. В конце концов, есть только две строки VBA, которые записывают цену в таблицу Excel.
Я в Германии, и Excel автоматически установил знак валюты от доллара к евро. Это конечно неправильно. В зависимости от того, где вы находитесь, это может быть перехвачено.
Sub myfile2()
Dim IE As Object
Dim url As String
Dim tagElements As Object
Dim lastRow As Long
lastRow = ActiveSheet.UsedRange.Rows.Count + 1
url = "https://www.wayfair.com/kitchen-tabletop/pdx/cuisinart-air-fryer-toaster-oven-cui3490.html"
Set IE = CreateObject("internetexplorer.application")
IE.navigate url
IE.Visible = True
Do: DoEvents: Loop Until IE.readyState = 4
'Break for 3 seconds
Application.Wait (Now + TimeSerial(0, 0, 3))
Set tagElements = IE.document.getElementsByClassName("BasePriceBlock BasePriceBlock--highlight")(0)
ActiveSheet.Cells(lastRow, 1).Value = Trim(tagElements.innerText)
IE.Quit
Set IE = Nothing
End Sub