运行时错误 91 和 1004 VBA

Runtime error 91 and 1004 VBA

我是 VBA 的新手。我一直在尝试将值“3.2500”放入单元格 B1。到目前为止,我有时会收到运行时错误 1004 和错误 91 - 对象变量或块变量未设置。是什么原因造成的?这是一本干净的工作簿。

Sub extract()

Dim myIE As Object
Dim myIEDoc As Object
Dim element As IHTMLElement

Set myIE = CreateObject("InternetExplorer.Application")

 myIE.Visible = False

myIE.navigate "https://zonasegura1.bn.com.pe/TipoCambio/"

While myIE.Busy
    DoEvents
Wend
 Set myIEDoc = myIE.document

Range("B1") = myIEDoc.getElementsByClassName("movimiento")(0).getElementsByClassName("l2 valor")(0)

End Sub

您的问题是:

 Range("B1") = myIEDoc.getElementsByClassName("movimiento")(0).getElementsByClassName("l2 valor")(0)

有歧义。您需要完全指定发生了什么。 "Range this or that" 如果你不说他们进入哪个工作簿或哪个工作表,则没有意义。

getElementsByID("movimiento") 正在考虑 class="movimiento bg" 一个匹配项,但没有匹配的 child 元素,因此您正在尝试从中获取 .innerText没有。您需要 class 名称的第二个匹配项,然后找到 child 或直接查找 class="l2 valor",因为您想要的是文档中的第三个。

'option 1
Range("B1") = myIEDoc.getElementsByClassName("movimiento")(1).getElementsByClassName("l2 valor")(0).innertext
'option 2
Range("B1") = myIEDoc.getElementsByClassName("l2 valor")(2).innertext

请记住,元素集合的索引号是 zero-based,因此要获得第三个元素,您需要索引号 (2)。