2017-06-22 139 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