在尝试使用vba删除一系列行时获取下一行。 哪里不对
Sub Keeptop3() Dim lastrow As Integer lastrow = ActiveSheet.UsedRange.Rows.Count For i = 4 To lastrow Rows(i).Delete Next i End Sub
我用lastrow来查找行数。 我只需要最上面的3行。 我得到他们加上第五排。
当我i = 4时,我得到了前两排和第四排。
我的代码有什么问题?
删除行时,反向工作是个好主意。 尝试这个:
Sub Keeptop3() Dim lastrow As Integer lastrow = ActiveSheet.UsedRange.Rows.Count For i = lastrow to 4 Step -1 Rows(i).Delete Next i End Sub
如果只想保留前3行, (删除所有其他内容) 。 然后删除从第四行到最后一行的范围,validation最后一行高于3. 如果是这种情况 ,则不需要逐一进行。
请参阅下面的代码(注意LastRowvariables的DataType的更改)
Sub Keeptop3() Dim lastrow As Long With ActiveSheet lastrow = .UsedRange.SpecialCells(xlLastCell).Row If lastrow > 3 Then .Rows("4:" & lastrow).Delete End With End Sub
取代这个:
lastrow = ActiveSheet.UsedRange.Rows.Count
有了这个:
lastrow = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row