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
相关产品推荐
相关产品推荐

