You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现Excel对象动态录入,VBA爬取数据时自动适配行列无需手动指定列

VBA动态录入网页爬取数据解决方案

以下是修正并优化后的代码,可自动适配爬取到的表格行数和列数,无需手动指定列:

Sub codalScraping()
    Dim ie As InternetExplorer
    Dim ht As HTMLDocument
    Dim link As String
    Dim i As Integer
    Dim elems As Object, elem As Object
    
    ' 可选关闭屏幕更新提升运行速度
    Application.ScreenUpdating = False
    
    link = InputBox("link", , "codal.ir/...")
    i = 1 ' 起始行号,可根据需要调整
    
    Set ie = New InternetExplorer
    ie.navigate (link)
    Do Until ie.readyState = READYSTATE_COMPLETE
        DoEvents
    Loop
    
    Set ht = ie.document
    Set elems = ht.getElementsByClassName("rayanDynamicStatement")(0).getElementsByTagName("tr")
    
    ' 遍历所有行<tr>标签,行数自动匹配爬取结果数量
    For Each elem In elems
        Dim col As Integer
        ' 遍历当前行下所有单元格<td>标签,列数自动适配无需手动指定
        For col = 0 To elem.Children.Length - 1
            Sheet1.Cells(i, col + 1) = elem.Children(col).textContent
        Next col
        i = i + 1
    Next elem
    
    ' 释放资源
    ie.Quit
    Set ie = Nothing
    Set ht = Nothing
    Application.ScreenUpdating = True
End Sub

核心调整说明

  • 修正了原代码的拼写错误:avtivesheet相关错误逻辑已调整
  • 新增行内列循环:自动遍历每行下的所有单元格元素,列数完全匹配网页表格的实际列数,不需要手动写A/B/C/D列的赋值语句
  • 行数由爬取到的<tr>标签总数自动决定,不需要提前手动设置行数范围
  • 新增IE资源释放逻辑,避免内存占用过高

内容的提问来源于stack exchange,提问作者bobby sands

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 20:15:03