Vba 无法从pgatour.com下载记分卡

Vba 无法从pgatour.com下载记分卡,vba,Vba,我在这里搜索了整个站点,以改进我的简单代码,但在set allRowofdata行仍然有一个错误424,这是我从这里收集到的。我只是想把一张高尔夫记分卡载入我的excel表格。我很感激能得到的任何帮助 这是我的密码: 注意:根据下面的建议,我已将代码更改为下面的代码,但现在在set allRowOfData处出现类型不匹配错误 Sub Trial() Dim IE As InternetExplorer Dim allRowOfData Dim document As Object Set

我在这里搜索了整个站点,以改进我的简单代码,但在set allRowofdata行仍然有一个错误424,这是我从这里收集到的。我只是想把一张高尔夫记分卡载入我的excel表格。我很感激能得到的任何帮助

这是我的密码: 注意:根据下面的建议,我已将代码更改为下面的代码,但现在在set allRowOfData处出现类型不匹配错误

Sub Trial()


Dim IE As InternetExplorer
Dim allRowOfData
Dim document As Object
Set IE = New InternetExplorer
IE.Visible = False

IE.navigate "https://www.pgatour.com/players/player.32757.patton-kizzire.html/scorecards/r457"

Do Until IE.readyState = 4: DoEvents: Loop


Set allRowOfData = IE.document.getElementById("module-1510443455695-953403-17")
Dim myValue As String: myValue = allRowOfData.Cells().innerHTML


IE.Quit
Set IE = Nothing


Range("A1").Value = myValue

End Sub

我认为您已经在页面上加载页面元素之前设置了页面元素,因此“allRowOfData”仍然为空

考虑将其替换为:

Application.Wait Now + TimeSerial(0, 0, 1)
与:

或者(效率低下,但看不出任何不起作用的原因):

以上假设您对.getElementByID方法的使用是正确的。未经测试,写在手机上

编辑1:

看看是否要改变这个

Dim allRowOfData
对此

Dim allRowOfData As IHTMLElement
工作

在重新运行代码之前,在VBA编辑器中,单击“工具”>“引用”,并向Microsoft HTML对象库添加引用(向下滚动并勾选)

类型不匹配意味着我们给一个错误类型的变量赋值,所以让我们去掉隐式变量


由于我在移动设备上,我无法检查代码的HTML源代码。可能是您想要的特定元素是在页面初始加载之后创建的(在这种情况下,您可能需要使用上面低效的替代方法),或者您需要迭代IHTMlementCollection以获取信息。这一切都取决于页面的结构和加载行为。

什么是
appIE
。。。。把它放在代码的最上面
选项Explicit
。。。。。以大写/小写形式声明变量,如
dim appIE
。。。。然后用小写字母键入所有代码,如
set-appie=
。。。如果它没有变为
appIE
那么你就犯了一个错误我已经按照你说的做了错误424仍然在那里你没有回答我的问题整行是从stackover这里的问答中复制的,作为从网站检索数据的一种方式--我不知道它的意义。我问什么是appIE。我看不到您的代码中定义了它。。。为什么在不知道代码的作用的情况下将一行复制到代码中?如果这是一个重新格式化硬盘的命令呢?谢谢你的回答,chillin。我听从了你的建议,至少改变了我的错误。现在我在Set allRowofdata行中得到一个错误“13-type mismatch”。好的,从代码中完全删除这一行:Dim document As Object。现在重新运行并检查是否仍有错误。
Dim allRowOfData
Dim allRowOfData As IHTMLElement