VBA非常新,但有其他一些语言的经验但需要帮助。我试图创建一个删除每4行的宏。例如,保留第1行但删除2,3,4,5跳过6并继续。这就是我到目前为止所做的:
Sub Macro1()
For x = 100 To 1 Step -2
Range(x & ":" & x).Select
Selection.ClearContents
Next x
End Sub
我不确定我的For循环是否缺少某些东西,或者我需要某种索引计数器来告诉它一次删除四个。
答案 0 :(得分:4)
这将从第100行开始,然后向后退到第1行。
Sub remove_rows()
Dim x As Long
Application.ScreenUpdating = False
For x = 100 To 1 Step -5
Range(x & ":" & x - 3).EntireRow.Delete
Next x
Application.ScreenUpdating = True
End Sub
(我在此.gif中有.Select
只是为了直观地向您展示。您不希望在实际的宏中使用它,因为它可以减慢速度):
编辑:啊,我注意到我删除了这行。您只需将.EntireRow.Delete
替换为.EntireRow.ClearContents
,它就会清除内容而不删除行本身。