gpt4 book ai didi

vba - VBA 上的语法错误问题

转载 作者:行者123 更新时间:2023-12-04 21:56:32 28 4
gpt4 key购买 nike

我正在尝试使用 VBA 从网站中提取一些值

以下代码包含我要查找的数据数组。这完美地工作并为我提供了我正在寻找的数据数组。

document.getElementsByClassName("list-flights")(0).querySelectorAll("[class$='price']")

上面的结果是
<NodeList length="23">...</NodeList>

但是当我试图通过使用以下代码在 VBA 中运行循环来提取值时
lnth = document.getElementsByClassName("list-flights")(0).querySelectorAll("[class$='price']").Length - 1

For x = 0 To lnth

firstResult = document.getElementsByClassName("list-flights")(0).querySelectorAll("[class$='price']")(x).innerText

Next x

该代码会在 firstResult 出现错误,因为它不会获得任何值。我在 Internet Explorer 上检查了如果我使用“(”括号没有任何值(value),但是如果我在 Internet Explorer 上使用“[”它可以工作,但 VBA 不会接受“[”括号。
document.getElementsByClassName("list-flights")(0).querySelectorAll("[class$='price']")[0] 

上面的代码适用于 Internet Explorer 控制台,但不能在 VBA 中使用。

如果您能建议解决此问题的方法,我敢肯定我遗漏了一些东西会很有帮助。

enter image description here

最佳答案

要获取innerText,可以使用getElementsByClassName还有 2 次,其中一次在 for each .. next 内循环,因为您的值在 list-flights -> price -> cash js_linkInsideCell 中:

Set priceData = IE.document.getElementsByClassName("list-flights")(0).getElementsByClassName("price")

For Each Item In priceData
Debug.Print Item.getElementsByClassName("cash js_linkInsideCell")(0).innerHTML
Next Item

使用 .querySelectorAll("[class$='price']")也可以,但是解析后会崩溃 IE 对象。试试看是否崩溃:
Set priceData = IE.document.getElementsByClassName("list-flights")(0).querySelectorAll("[class$='price']")

For Each Item In priceData
Debug.Print Item.getElementsByClassName("cash js_linkInsideCell")(0).innerHTML
Next Item

一些快速说明:

1-您可以使用此代码等待 IE 对象加载 url:
Do While IE.Busy
DoEvents
Loop

2-有时,即使 IE 对象已准备好,查询结果也不会那么快返回。这意味着您要查找的元素尚未准备好并且不存在,因此您会收到一条错误消息:

Run-time error '91': Object variable or With block variable not set



为避免此消息,我的解决方法如下:
Do
On Error Resume Next
Set priceData = IE.document.getElementsByClassName("list-flights")(0).getElementsByClassName("price")
Loop Until Err.Number <> 91

我希望这有帮助。

关于vba - VBA 上的语法错误问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43704985/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com