循环复制10行区域时如何让指定单元格值每次复制递增1
问题原因
- 现有代码硬编码基准单元格为
Range("C4"),偏移量固定为10行,每次运行只会修改C14单元格的值,无法定位到最新复制块对应的单元格位置 - 没有动态查找当前已填充的最大序号单元格,每次计算增量时都取固定的C4值计算,会出现覆盖旧值、数值计算逻辑混乱的问题
修正方案
你需要每次运行时先定位到C列最后一个有数值的序号单元格,再偏移10行写入新的序号,修正后代码如下:
Sub Count() Dim targetCol As Range, lastSerialCell As Range ' 定位目标序号所在的C列,可根据实际需求调整列号 Set targetCol = Range("C:C") ' 查找C列最后一个已填充数值的单元格(即上一个复制块的序号) Set lastSerialCell = targetCol.Cells(targetCol.Cells.Count).End(xlUp) ' 偏移10行写入新的递增序号 lastSerialCell.Offset(10, 0) = lastSerialCell.Value + 1 ' 下方补充10行表格区域的复制逻辑即可,示例如下(按需修改要复制的区域): ' Rows("1:10").Copy Destination:=lastSerialCell.Offset(1, -2).EntireRow End Sub
效果说明
初始状态C4=1时,第一次运行会定位到C4,偏移10行到C14写入2;第二次运行定位到C14,偏移10行到C24写入3,以此类推,完全符合你的需求。
内容的提问来源于stack exchange,提问作者Chris L
相关产品推荐
相关产品推荐

