使用VBA宏将表格数据从多个网页提取到excel中。

时间:2015-07-11 12:18:28

标签: excel vba excel-vba

使用VBA宏将表格数据从多个网页提取到Excel中.. !!目前iam使用下面的链接,但我能够只在代码中的一个网页..我有ulr的列表来从...获取数据...它必须垂直.. !!请建议我.. :)

Sub INDEXdata()

    With ActiveSheet.QueryTables.Add(Connection:= _
        "URL;http://recorder.maricopa.gov/recdocdata/GetRecDataDetail.aspx?rec=19770000007" _
        , Destination:=Range("$A$1"))
        .Name = "rec=19770000006"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlSpecifiedTables
        .WebFormatting = xlWebFormattingNone
        .WebTables = "2,3"
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With
End Sub

1 个答案:

答案 0 :(得分:0)

好的,我不知道你有多少编程背景,而且我也不知道你发布的代码的哪些部分特定于那个源网址和目标位置。

但是,这样的事情可能有用。我假设网址,目的地和名称会因您想要提取的每个页面而改变。

我所做的是采用看起来对所有源页面和目标都适用的代码部分,并将其放在自己的参数化子例程中。原始例程IndexData仅为每个复制操作指定URL和目标以及名称。

 Sub IndexData()
     GetData("http://recorder.maricopa.gov/recdocdata/GetRecDataDetail.aspx?rec=19770000007" , _
             "$A$1", _
             "rec=19770000006")
     GetData("http://somewhereelse.com/somedata.aspx?rec=12345", _
              "$A$2", _
              "rec=12345")
     GetData("http://anotherurl.com/etc", _
              "$A$3", _
              "something")
 End

 Sub  GetData(url as string, destination as string, name as string)
   With ActiveSheet.QueryTables.Add(Connection:= _
      "URL;" & url , Destination:=Range(destination))
      .Name = name
      .FieldNames = True
      .RowNumbers = False
      .FillAdjacentFormulas = False
      .PreserveFormatting = True
      .RefreshOnFileOpen = False
      .BackgroundQuery = True
      .RefreshStyle = xlInsertDeleteCells
      .SavePassword = False
      .SaveData = True
      .AdjustColumnWidth = True
       .RefreshPeriod = 0
      .WebSelectionType = xlSpecifiedTables
      .WebFormatting = xlWebFormattingNone
      .WebTables = "2,3"
      .WebPreFormattedTextToColumns = True
      .WebConsecutiveDelimitersAsOne = True
      .WebSingleBlockTextImport = False
      .WebDisableDateRecognition = False
      .WebDisableRedirections = False
      .Refresh BackgroundQuery:=False
  End With
End Sub