excel - 无法将特定表格从 Web 提取到 Excel VBA (Mac) 中的电子表格中

标签 excel vba macos

基本上,我有以下程序,它允许我获取特定股票的股票价格,在下面的示例中说“700”。股票价格出现在网页上的特定表格中。在 PC 计算机中,我能够使用

.WebSelectionType = xlSpecifiedTables

.WebTables = "4"

从网页中挑选出我想要的特定表格。然而在 Mac 上,我无法做到这一点,并且遇到了这个运行时错误 438:对象不支持此属性或方法。这真的很烦人。所以我从代码中删除了这两行。但问题是:我现在无法从网上提取特定的股票价格表。谁能告诉我如何克服这个问题?

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

最佳答案

Mac 版 Office 2011

看看,.WebTables 属性似乎是 VBA 6实现或其他only works on IE

可能的解决方法

导入隐藏工作表上的所有内容,然后复制并粘贴到相关部分,因为不同库存类型的布局应该相当一致

<小时/>

一般指导

创建网络查询

对于 Mac,您需要创建一个 Web 查询文件才能检索 Web 内容。 Microsoft 制作了一个应该可以帮助您的操作方法:http://support.microsoft.com/kb/274787

引用特定表进行导入

您可以使用 Selection 参数指定要选择的表。以下是使用 Excel 2013 Windows 构建的 Web 查询示例。

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:\folderstruct\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 中更新它,但我想提供一种更简单的方法来更改表以使其更加直观。 https://dl.dropboxusercontent.com/u/40423572/SO%20items/hkexample.xlsm https://dl.dropboxusercontent.com/u/40423572/SO%20items/hkquery.iqy

关于excel - 无法将特定表格从 Web 提取到 Excel VBA (Mac) 中的电子表格中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23256656/

相关文章:

c# - 在 EPPlus C# 中展开表

macos - 如何使用 NSSearchField 在 NSTableView 中进行搜索?

vba - 执行CalculateFullRebuild时调用未使用的UDF

VBA 更改另一个工作簿中的值

Excel - 条件格式 =MOD(ROW(),2)=0

excel - 用于拆分地址列的 VBA Excel IF 条件

vba - 循环遍历所有工作表

mysql - 按顺序插入或打开表单到特定记录,同时仍然可以查看其他记录

python - Mac 操作系统 : How do I run a multi-line script on command line?

objective-c - 我如何知道 CGEventRef 来自哪个应用程序?