-2

我使用 Excel 表格进行一些计算,例如评估所得税申报表。我需要将数据从网站提取到 Excel 表中。我一步一步地使用VBA成功地做到了

  1. 在 VBA 中创建 Internet Explorer 应用程序
  2. 导航到网站 url 并登录
  3. 通过我的 Excel 工作表中已有的唯一 ID 自动填写表格
  4. 现在提交表单和结果页面有表格形式的数据
  5. 现在通过使用getelementsbyid("tableid")我在 Excel 表中复制和粘贴数据。

我的问题

  1. 所有表都没有 id 或 name
  2. 有很多桌子

现在我想从没有 id 的表中提取数据,该表是从顶部开始的第三个表。这个怎么做?我很努力。我不想要所有表,因为这些表中的行总是发生变化,所以当我复制所有表数据时。

4

1 回答 1

0

开始宏录制,进入Data -> From Web,在导入对话框中打开需要的网页,选择需要的表,根据需要设置所有导入选项,导入数据。然后停止录制。

您将获得一个带有自动生成的宏代码的样板,然后将其微调为您的需求将是微不足道的。

我做了很多次,这太容易了,我现在还没有存储一个片段与你分享。

更新:这是如何从这个页面导入你的问题

Sub Macro1()
'
' Macro1 Macro
'

'
    With ActiveSheet.QueryTables.Add(Connection:= _
        "URL;http://stackoverflow.com/questions/18158928/get-tabledata-from-webpage-into-excel-using-macro/18160278#18160278" _
        , Destination:=Range("$A$1"))
        .Name = "18160278#18160278"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlOverwriteCells ' adjust this setting to your needs
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlSpecifiedTables
        .WebFormatting = xlWebFormattingNone
        .WebTables = "1" ' this is the number of the required table on a page
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = True
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With
End Sub
于 2013-08-10T08:53:41.690 回答