2016-09-16 52 views
-1

我需要删除列N中包含0或正值的所有行(整行)。下面的代码正确地执行此操作,但问题是第1行有列标题(全部为文本)。这一行被我当前的宏删除。我需要这一行不会被包含在宏观效果的范围内或以某种方式锁定。行数是动态的,因此我不能指定宏运行的固定范围。如何在单元格包含特定值但不影响第1行时删除整行

Sub Step20() 


Application.ScreenUpdating = False 
Application.Calculation = xlCalculationManual 
Dim i As Long 
For i = Range("N" & Rows.Count).End(xlUp).Row To 1 Step -1 
    If (Range("N" & i).Value >= 0) Then 
     Range("N" & i).EntireRow.Delete 
    End If 
Next i 
Application.Calculation = xlCalculationAutomatic 
Application.ScreenUpdating = True 


End Sub 

谢谢!

+1

将for循环中的'to 1'更改为'to 2'。那么它永远不会看第1行 –

+0

@ScottCraner啊!如此明显 - 完美运作。如果您想提交这个答案,我会将其标记为如此。 – RugsKid

回答

1

您正在将代码设置为从最后一行开始直到第一行,即整个文档。如果你改变直到第2行,该怎么办?你只需要确保你的标题在第一行!

这是我会在你的代码更改:

For i = Range("N" & Rows.Count).End(xlUp).Row To 2 Step -1 

这样你保存的第一行,仍然可以得到你的工作做好。

相关问题