Excel宏将Web数据放入单个单元格

标签 excel vba web

我有一个电子表格,其中包含 A 列中的 URL 列表。我想读取每个 URL 并将输出存储在单个单元格中,或者至少存储在与 URL 相同的行中。我目前正在使用以下标准 VBA 代码进行每次读取(此处简化为使用静态 URL)。

问题是 Excel 会自动将数据分成多行和多列,具体取决于网页的格式(这显然是通常需要的)。

请问有什么简单的方法可以修改该代码以强制输出到单个单元格或行中吗?

Sub FetchData()
  With ActiveSheet.QueryTables.Add(Connection:= _
    "URL;http://www.someurl", Destination:=Range("$B$1"))
    .FieldNames = True
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .BackgroundQuery = True
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .WebSelectionType = xlEntirePage
    .WebFormatting = xlWebFormattingNone
    .WebPreFormattedTextToColumns = True
    .WebConsecutiveDelimitersAsOne = True
    .WebSingleBlockTextImport = False
    .WebDisableDateRecognition = False
    .WebDisableRedirections = False
    .Refresh BackgroundQuery:=False
  End With
End Sub

别担心,我设法使用这里的代码解决了这个问题:
Fetch specific table only from website into Excel

我下面的版本假设 A 列包含 URL 列表,B-I 列包含其他数据。我想从 A 列中读取每个 URL 的网页,并从表中拉出 2 个字段并将它们放在 J 和 K 列(第 10 和 11 列)中。这些字段在网页中被命名为 ID="Name1"和 ID="Name2"。
Sub Getfromweb()
Dim RowNumb As Long
Dim LastRow As Long
Dim htm As Object

Set htm = CreateObject("htmlFile")
LastRow = Cells(Rows.Count, 1).End(xlUp).Row

For RowNumb = 1 To LastRow

   With CreateObject("msxml2.xmlhttp")
      .Open "GET", Sheets(1).Cells(RowNumb, 1), False
      .send
       htm.body.innerhtml = .responsetext
   End With

   With htm.getelementbyid("Name1")
        Sheets(1).Cells(RowNumb, 10).Value = .innertext
   End With

   With htm.getelementbyid("Name2")
       Sheets(1).Cells(RowNumb, 11).Value = .innertext
   End With
Next RowNumb

End Sub

最佳答案

显然它与文本到列有关。如果之前已经使用过并且指定了一个空白作为分隔符,那么它将应用于 future 的数据导入。诡异的。无论如何,只需进入 Text to Columns 并删除空白分隔符并接受,然后重做数据导入。

关于Excel宏将Web数据放入单个单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18956479/

相关文章:

Php split/chunk Excel with Maatwebsite Laravel-Excel v.3

Python 3 和 Excel,查找要使用的复杂模块

vba - 使用 Excel 工作表中的分层数据填充 TreeView 控件

vba - 如何从 Excel 2003 VBA 写入 "Google Spreadsheet"

html - 应用于全尺寸页面的 css 媒体查询

ios - 具有多个 Excel 工作表和文档的 QLPreviewController iOS 6

C# OpenXML 在 Word 文档中嵌入电子表格图表

javascript - 第一次单击后禁用图像按钮

python - 如何在excel外执行vba宏

javascript - 粘性标题 Logo 悬停