У меня есть макрос, который открывает веб-страницу, назначает определенные переменные, а затем вызывает другую процедуру, используя функцию Call
.Мне нужно будет использовать некоторые переменные, определенные в первой процедуре (например, numberOfPages
) во второй процедуре, но я получаю следующую ошибку:
Ошибка компиляции: переменная не была определена
Может кто-нибудь подскажите, пожалуйста, что это за ошибка и как ее решить?Я подробно ниже обе процедуры.
Sub test()
Dim element As IHTMLElement
Dim elements As IHTMLElementCollection
Dim ie As InternetExplorer
Dim numberOfPages As Double
Dim html As HTMLDocument
Set ie = New InternetExplorer
ie.Visible = True
ie.navigate "https://cebra.com.ar/category/73/Juego-de-Construccion.html"
Do While ie.readyState <> READYSTATE_COMPLETE
Application.StatusBar = "Loading Web page …"
DoEvents
Loop
Set html = ie.document
Set elements = html.getElementsByClassName("container")
Set ElementCol = html.getElementsByTagName("a")
numberOfPages = ie.document.querySelectorAll(".setPage").Length
'MsgBox numberOfPages
For Each ele In ie.document.getElementsByTagName("li")
For Each element In elements
If element.className = "container" Then
'Do something
Call procedure
End If
Next element
Next
MsgBox "Done"
End Sub
Option Explicit
Public Sub procedure()
MsgBox numberOfPages
'I want to use the internet explorer opened and this variable to do something
End Sub