Это
html.querySelector(".snize-search-results-header").innerText
возвращает пустую строку, поэтому, когда вы делите, вы получите -1 в вашем массиве.
Возможно, для этого значения требуется javascript длязапустить на странице.Проверьте возвращенный HTML.Я думаю, что значение не возвращается за это.Используйте такой метод, как selenium или IE, который позволяет js запускаться на странице и обновлять содержимое со значением
. В этом случае вам также потребуется lbound, чтобы вы могли использовать функцию, которая возвращает значение, которое использует IE * 1008.*
numPages = GetNumberOfPages
Public Function GetNumberOfPages() As Long
Dim IE As New InternetExplorer
With IE
.Visible = False
.Navigate2 "https://mediamarkt.pt/pages/search-results-page?q=maquina+roupa&page=1"
While .Busy Or .readyState < 4: DoEvents: Wend
Dim numPages As Long, numResults As Long, arr() As String
arr = Split(.document.querySelector(".snize-search-results-header").innerText, Chr$(32))
numResults = arr(LBound(arr))
GetNumberOfPages = numResults
.Quit
End With
End Function
На следующей странице вы смотрите на другое имя класса (я думаю)
Set data = html.getElementsByClassName("snize-product")
Изучите html для проверки.