运行时错误91和1004 VBA

时间:2018-02-19 03:27:32

标签: vba excel-vba runtime-error getelementsbyclassname excel

我是VBA的新手。我一直试图获得价值" 3.2500"进入细胞B1。到目前为止,我得到运行时错误1004和错误91 -object变量或者没有设置块变量。可能导致什么?它是一本干净的工作手册。

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

2 个答案:

答案 0 :(得分:0)

你的问题是:

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

含糊不清。您需要完全指定要发生的事情。 "范围这个或那个"如果你不说什么工作簿或他们进入什么工作表是没有意义的。

答案 1 :(得分:0)

getElementsByID(“movimiento”)正在考虑class =“movimiento bg”匹配,并且没有匹配的子元素,所以你试图从任何东西得到.innerText。您需要类名的第二个匹配,然后找到子项或直接查找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

请记住,元素集合的索引号是从零开始的,所以要求第三个要求索引号(2)。