首页 > 解决方案 > 尝试连接到网站时,VBA 中是否有解决错误运行时错误“429”的方法?

问题描述

我正在尝试创建一个 VBA 来将谷歌表格下载到 excel 中,这样我就可以每天编译股市数据。我会简单地使用电源查询,但我在我的个人笔记本电脑上执行此操作,这是一台 Mac,不支持电源查询。我对编码比较陌生,所以一直倾向于遵循在线说明。该指令包括:

Set objWebCon = CreateObject("MSXML2.XMLHTTP.3.0")

此行在运行时会创建一条错误消息:

“运行时错误‘429’:ActiveX 组件无法创建对象”

我认为问题在于指令基于 Windows 操作系统这一事实。我搜索过的任何解决方案都特定于 Windows 操作系统。

这里有人知道我是否可以更改代码的“MSXML2.XMLHTTP.3.0”部分以更好地适应mac?不确定这是否是需要做的,但任何指导将不胜感激。

我在下面附上了我的完整代码,但如果不是相关的,请随意忽略它。谢谢!!


Sub DownloadGoogleSheets()

Dim ShtUrl As String, Location As String, FileName As String
Dim objWebCon, objWrit As Object

'Sheet Url
ShtUrl = "https://docs.google.com/spreadsheets/d/1wpA_epxtlz96sxETqKttJwsy9Aubb15H8xslcSQ20T0/export?format=csv&id=1wpA_epxtlz96sxETqKttJwsy9Aubb15H8xslcSQ20T0" & gid = 1319327791

'Location
Location = ThisWorkbook.Path & "\"  '/Users/[myName]/Desktop/Stock Analysis/n"

'FileName
FileName = "GoogleSheet.csv"

'Connection to Website
Set objWebCon = CreateObject("MSXML2.XMLHTTP.3.0")

'Writer
Set objWrit = CreateObject("ADODB.Stream")

'Connecting to the Website
objWebCon.Open "Get", ShtUrl, False
objWebCon.Send (ShtUrl)

'Once page is fully loaded
If objWebCon.Status = 200 Then

'Write the text of the sheet
objWrit.Open
objWrit.Type = 1
objWrit.Write objWebCon.ResponseBody
objWrit.Position = 0
objWrit.SaveToFile Location & FileName
objWrit.Close

End If

Set objWebCon = Nothing
Set objWrit = Nothing

End Sub

标签: excelvba

解决方案


推荐阅读