excel - 删除Excel中的每四行

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

最佳答案

这将从第 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 即可,它只会清除内容,而不会删除行本身。

关于excel - 删除Excel中的每四行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48813698/

相关文章:

excel - 间接行Excel地址

python - Pandas:在 excel 文件中查找工作表列表

excel - 我可以在 Excel VBA 中捕获并模拟 KeyDown 事件吗?

excel - VLookup 可以使用动态数组(由字符串确定)吗?

excel - 是否有一个公式可以返回趋势线斜率的方程式?

vba - 如何在 VBA 中实现消失的动画?

vba - On Error Resume Next 如何处理 If 语句和循环中的错误

MYSQL-Access-Macro Error 字段列表中的未知列

excel - 如果 Cell = 0,则对于每个循环删除行

algorithm - 检查范围内两个条件的算法