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

VBA循环问题求助:如何逐行重复执行单元格特定代码

解决VBA逐行遍历数据并写入新工作表的循环问题

核心实现思路

  • 先定位原工作表的有效数据行范围,避免遍历空行
  • 循环遍历每一行,将A、B列内容与指定文本拼接
  • 把拼接结果逐行写入新建的工作表

完整代码示例

假设原工作表名为数据源,要写入的新工作表是新建工作簿里的结果表,指定文本为【自定义拼接文本】,代码如下:

Sub 逐行拼接写入新表()
    Dim 原表 As Worksheet
    Dim 新表 As Worksheet
    Dim 最后一行 As Long
    Dim i As Long
    
    ' 指定原工作表
    Set 原表 = ThisWorkbook.Worksheets("数据源")
    ' 新建工作簿并设置目标工作表
    Set 新表 = Workbooks.Add.Worksheets(1)
    新表.Name = "结果表"
    
    ' 获取原表A列最后一行有数据的行号
    最后一行 = 原表.Cells(Rows.Count, "A").End(xlUp).Row
    
    ' 循环遍历每一行数据
    For i = 1 To 最后一行
        ' 拼接A、B列内容与指定文本,写入新表对应行的A列
        新表.Cells(i, "A").Value = 原表.Cells(i, "A").Value & "【自定义拼接文本】" & 原表.Cells(i, "B").Value
        ' 如需写入多列,可添加类似语句,比如把原表C列内容写入新表B列
        ' 新表.Cells(i, "B").Value = 原表.Cells(i, "C").Value
    Next i
End Sub

关键细节说明

  • 获取有效行范围:Rows.Count是当前Excel版本的最大行数,End(xlUp)从最底部往上定位第一个非空单元格,确保只遍历有数据的行
  • 循环行号对应:循环变量i直接对应原表和新表的行号,保证逐行匹配写入
  • 拼接逻辑调整:用&连接字符串,可根据需求自由调整拼接顺序、指定文本内容
  • 适配已有代码:如果你已经有创建新工作簿的代码,直接把Set 新表 = ...替换成你已有的新工作簿工作表对象即可

内容的提问来源于stack exchange,提问作者Will Drury

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 00:57:26