2014-03-26 22 views
1

我有一个包含几百个文件的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

+0

你能解释的部分:“我的数据集设置方式,有两行 - 然后与行父文件和添加多少行的引用号。“ - 也许更新你的问题与数据的外观,所以我们可以给你最终的解决方案,你正在寻找.... –

+0

你没有重置n为0在每个循环的末尾 –

+0

一种廉价的方式避免问题是在插入操作之前将当前单元设置为偏移(1,0),然后在currentcell.offset(-1,0)上插入行:D –

回答

0

由所附的图像的检查,似乎环路循环向下行与坯料因此,循环立即停止。在遇到第一个空白,因为:

Do While Not IsEmpty(currentCell)

所以,替换成Do Until currentCell is Range("C100000").End(xlUp)和循环应该继续作为教人口会d。 A小调性能改进是缓存该单元格中保存评估它每次循环如:

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