2017-06-22 68 views
-1

在單元格A1和A3中我有數據。如果我在單元格A2中插入一個新數據,我需要在A2和A3之間插入一個新行,以便A3始終保持在底部(將移至A4 ...等等)。 我到處尋找,但我發現是插入的不同需求。先謝謝你。在數據之間插入新行

+0

如果你需要一個代碼,嘗試當你做手工錄製宏。它會給你一些代碼開始。 – braX

+1

到目前爲止顯示您的VBA代碼。 –

+1

首先找到您上次使用的行號。網絡上有成千上萬的例子。如果您需要向列A添加數據,請在最後使用的行號上插入新行。這會將最後一行推送到下一個行號,並且可以將新數據放入最後使用的行號的行中,但現在是最後一次使用的行的下一行。 –

回答

0

謝謝大家,我有一些小的變化做了它:

Dim LastRow As Long 
    With ActiveSheet 
     LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row 
    End With 
    ActiveSheet.Range("A" & LastRow).Select 
    Selection.Offset(1, 0).EntireRow.Insert 
End Sub 
1

這是一個很常見的問題,可以通過循環來解決。

你需要指定你的循環功能的步驟,例如:

For i = 100 to 2 Step -1 

'Code... soemthign like If Cells(i,1).Value>0 Then Rows(i).EntireRow.Insert End If 

Next i 

這會以相反的順序,從而消除向下移動線的問題。

你也可以使最後一行變成動態的(我會留給你找到那個代碼...快速谷歌搜索把它變成通常)。 For語句如下:

Dim LR as Long 
LR = 'dynamic code 
For i = LR to 1 Step -1 
'Code 
Next i 
1

讀你上面的評論我可以看到你不是在worng球公園。有可能有十幾種方法找到你最後使用的行。這裏有一對夫婦:

LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row 
LastRow = ActiveSheet.Cells(1048576, 1).End(xlUp).row 
LastRow = ActiveSheet.Columns("A").Cells.Find("*", SearchOrder:=xlByRows, LookIn:=xlValues, SearchDirection:=xlPrevious).Row 

這裏是代碼,將完成任務。

Sub tester1() 
Dim LastRow As Long 

    With ActiveSheet 
     LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row 
    End With 

    ActiveSheet.Range("A" & LastRow).Select 
    Selection.EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove 
    ActiveSheet.Range("A" & LastRow).Value = "Done!" 

End Sub