如何添加由引用单元格确定的行数

时间:2014-03-26 18:31:37

标签: excel vba excel-vba

我有一个包含几百个文件的Excel电子表格。每个文件中有几个图像。我需要每个图像在“父”文件行下插入一个新行。我有代码将插入正确的行数,但它不会转到下一个单元格,并且我更改的偏移量都没有修复它。

Sub CB3262014()
Dim i As Integer, n As Integer, m As Long, currentCell As Range
Set currentCell = ActiveCell
Do While Not IsEmpty(currentCell)
n = currentCell.Value
m = currentCell.Row
If n > 0 Then
Rows(m + 1 & ":" & m + n).Insert
Set currentCell = currentCell.Offset(n + 1, 0)
Else
Set currentCell = currentCell.Offset(1, 0)
End If
Loop
End Sub

我也在努力让它每次跳过/跳过两行。设置数据集的方式有两行 - 然后是包含父文件的行和用于添加多少其他行的参考编号。

以下是电子表格中的示例以及我希望它如何。我将填写文件名,我只是把它们放在那里,这样就可以更容易地看到发生了什么。

当前电子表格[1]:http://i.stack.imgur.com/zRdXE.png

目标电子表格[2]:http://i.stack.imgur.com/6evMO.png

1 个答案:

答案 0 :(得分:0)

通过检查附加的图像,似乎循环正在循环向下的行中有空白。因此,循环因遇到第一个空白而立即停止:

Do While Not IsEmpty(currentCell)

因此,将其替换为Do Until currentCell is Range("C100000").End(xlUp),循环应按预期继续。一个小的性能改进是缓存该单元以保存对每个循环的评估,例如:

Dim lastCell As Range
Set lastCell = Range("C100000").End(xlUp)
Do Until currentCell is lastCell
...etc
Loop
相关问题