删除excel中的每四行

时间:2018-02-15 18:07:34

标签: excel vba

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循环是否缺少某些东西,或者我需要某种索引计数器来告诉它一次删除四个。

1 个答案:

答案 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只是为了直观地向您展示。您不希望在实际的宏中使用它,因为它可以减慢速度): enter image description here

编辑:啊,我注意到我删除了这行。您只需将.EntireRow.Delete替换为.EntireRow.ClearContents,它就会清除内容而不删除行本身。