如何修改VBA代码实现删除含Delete行但保留第8行?
修改后的VBA代码(保留第8行)
以下是满足需求的代码,会删除所有A列单元格值为"Delete"的行,但强制保留第8行:
Sub RectangleRoundedCorners6_Click() Dim Last As Long Last = Cells(Rows.Count, "A").End(xlUp).Row ' 从最后一行向上遍历,避免删除行导致的索引错位 For i = Last To 1 Step -1 ' 仅当行号不是8,且A列值为"Delete"时才删除 If Cells(i, "A").Value = "Delete" And i <> 8 Then Cells(i, "A").EntireRow.Delete End If Next i End Sub
关键修改说明:
- 移除了原代码中无意义的
Range("A8:A9").Select和Range("A9").Activate语句,这类选择/激活操作会降低代码运行效率,且对核心逻辑无帮助。 - 在删除判断条件中新增
i <> 8,直接排除第8行,确保无论该行A列是否为"Delete",都不会被删除。 - 补充了
Last变量的类型声明(Dim Last As Long),符合VBA最佳实践,避免隐式类型转换可能带来的问题。
内容的提问来源于stack exchange,提问作者Wafee89
相关产品推荐
相关产品推荐

