【问题标题】:WebScraping Using Excel VBA on Mac在 Mac 上使用 Excel VBA 进行网页抓取
【发布时间】:2021-03-03 02:27:44
【问题描述】:

我知道有几个类似的问题,但以前的解决方案似乎对我没有用。我已经尝试了现有的宏、网络查询以及几乎所有的东西,但到目前为止它们都失败了。

我想从https://www.x-rates.com/table/?from=USD&amount=1 中抓取货币汇率数据并使用 VBA 将其转换为表格形式。我的电脑是 macOS 10.14.16 Mojave,我的 Excel 版本是 16.39 版。

我知道 InternetExplorer 对象不适用于我的操作系统。尽管按照 tee 的步骤,我也无法创建网络查询。

谁能帮我找出一种方法来访问该网站的源代码?非常感谢。

【问题讨论】:

    标签: vba macos web-scraping


    【解决方案1】:

    我现在可以在 Windows 上使用 Excel 轻松获取这些数据。

    • 从菜单:数据/来自网络
    • 输入您在上面提供的网址
    • 从导航器列表中选择“Table1”
    • 点击对话框底部的“加载”

    如果此解决方案不适合您,您能否帮助我们进一步了解您的限制条件?

    对这些步骤使用“记录宏”,我得到以下宏:

    Sub Macro1()
    '
    ' Macro1 Macro
    '
    
    '
        ActiveWorkbook.Queries.Add Name:="Table 1", Formula:= _
            "let" & Chr(13) & "" & Chr(10) & "    Source = Web.Page(Web.Contents(""https://www.x-rates.com/table/?from=USD&amount=1""))," & Chr(13) & "" & Chr(10) & "    Data1 = Source{1}[Data]," & Chr(13) & "" & Chr(10) & "    #""Changed Type"" = Table.TransformColumnTypes(Data1,{{""US Dollar"", type text}, {""1.00 USD"", type number}, {""inv. 1.00 USD"", type number}})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & "    #""Changed Type"""
        ActiveWorkbook.Worksheets.Add
        With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
            "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=""Table 1"";Extended Properties=""""" _
            , Destination:=Range("$A$1")).QueryTable
            .CommandType = xlCmdSql
            .CommandText = Array("SELECT * FROM [Table 1]")
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .BackgroundQuery = True
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .PreserveColumnInfo = True
            .ListObject.DisplayName = "Table_1"
            .Refresh BackgroundQuery:=False
        End With
    End Sub
    

    【讨论】:

      猜你喜欢
      • 2019-04-03
      • 2017-11-04
      • 2016-09-12
      • 1970-01-01
      • 2019-07-30
      • 2020-11-30
      • 2013-08-27
      • 2021-01-19
      • 2019-03-15
      相关资源
      最近更新 更多