无法将特定表格从web提取到Excel VBA(Mac)中的电子表格
基本上,我有下面的程序,它允许我获取特定股票的股价,在下面的例子中是“700”。股价出现在网页上的特定表格中。在个人电脑中,我能够使用无法将特定表格从web提取到Excel VBA(Mac)中的电子表格,excel,vba,macos,Excel,Vba,Macos,基本上,我有下面的程序,它允许我获取特定股票的股价,在下面的例子中是“700”。股价出现在网页上的特定表格中。在个人电脑中,我能够使用 .WebSelectionType=xlSpecifiedTables .WebTables=“4” 从网页中选择我想要的特定表格。但是在mac上,我无法做到这一点,我遇到了运行时错误438:object不支持此属性或方法。这真让人讨厌。所以我从代码中删除了这两行。但问题是:我现在无法从网上提取特定的股票价格表。有人能告诉我如何克服这个问题吗 Sub getSt
.WebSelectionType=xlSpecifiedTables
.WebTables=“4”
从网页中选择我想要的特定表格。但是在mac上,我无法做到这一点,我遇到了运行时错误438:object不支持此属性或方法。这真让人讨厌。所以我从代码中删除了这两行。但问题是:我现在无法从网上提取特定的股票价格表。有人能告诉我如何克服这个问题吗
Sub getStockDataTest()
getGoogleStockHistory 700
End Sub
Sub getGoogleStockHistory(gInt As Long)
'load google stock hisotry
With ActiveSheet.QueryTables.Add(Connection:="URL;https://www.google.com.hk/finance/historical?q=HKG%3A" & Format(gInt, "0000") & "&num=200", Destination:=ThisWorkbook.Sheets("Query").[A1])
.Name = "WebQuery"
.RefreshStyle = xlOverwriteCells
.SaveData = True
.Refresh
End With
End Sub
Office 2011 for Mac 综上所述,.WebTables属性似乎是一个实现,或者是 可能的解决方法 导入隐藏工作表上的所有内容,然后在相关部分进行复制和粘贴,因为对于不同的库存类型,布局应该相当一致
一般指南 创建web查询 对于Mac,您需要创建一个web查询文件来检索web内容。Microsoft已经制作了一个操作指南,可以帮助您: 引用要导入的特定表 可以使用选择参数指定要选择的表。下面是一个使用Excel 2013 Windows构建的webquery示例
WEB
1
https://www.google.com.hk/finance/historical?q=HKG%3A0005&num=200#
num=200&q=["stock","stock sym"]
Selection=4
Formatting=None
PreFormattedTextToColumns=True
ConsecutiveDelimitersAsOne=True
SingleBlockTextImport=False
DisableDateRecognition=False
DisableRedirections=False
使用.iqy文件
对于.iqy文件,您可以使用“FINDER;C:\folderstructure\queryname.iqy”而不是使用URL:
Sub example()
Workbooks("Book6").Connections.AddFromFile _
"C:\Users\slocke\Desktop\hkquery.iqy"
With ActiveSheet.QueryTables.Add(Connection:= _
"FINDER;C:\Users\slocke\Desktop\hkquery.iqy", Destination:=Range("$A$1"))
.CommandType = 0
.Name = "hkquery"
.WebTables = "4"
End With
End Sub
使用具有更改值的.iqy文件
我添加了一个iqy和工作簿,其中包含一些基本的vba,用于根据要更改的参数的文本框位置导入和更新表格
您可以进一步修改循环语句以插入值,也可以直接在VBA中更新它,但我想提供一种更简单的方法来更改表,使其更直观。
谢谢你的回答。嗯,我已经这么做了。但是如何从网页中获取特定的表呢?你的链接中提到的web查询只讨论如何创建web查询文件,但没有告诉我如何从网页中提取特定的表。我尝试了以下代码,除了URL之外,这些代码与你的代码非常相似<代码>WEB 1https://www.google.com.hk/finance/historical?q=HKG%3A0005&num=200 Selection=4 Formatting=None PreFormattedTextToColumns=True ConcertiveDelimitersASONE=True SingleBlockTextImport=False DisableDateRecognition=False DisableRedirections=False但是,无论我设置了什么值“Selection=”,它仍然在电子表格的顶部给了我一些不必要的数据。你明白为什么会发生这种情况吗?我已经在dropbox中添加了一些包含参数化的样本-你能看看它们是如何为你工作的吗?我没有Mac或工作簿的副本来为您检查细节,因此我构建了一个MW。问题是Mac Excel VBA 2011不支持查询表和
webtables=“4”
将导致mac VBA出错。查看一些msdn论坛帖子,似乎是因为vba5不支持该属性,mac office使用的是vba5而不是vba6。不幸的是,我无法访问任何文档,因为它们是mac2链接。