2014-03-26 24 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 
相關問題