我有一个包含数百个文件的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
通过检查所附的图像,似乎循环正在向下循环行中插入空白。因此,由于以下原因,循环在遇到第一个空白时立即停止:
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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句