excel - 选择特定范围的单元格并仅删除突出显示的单元格并向上移动的 VBA
问题描述
我是使用 VBA 的新手。我正在创建一个宏,它扫描一个范围内的每个单元格,以检测任何填充黄色的单元格,删除它们,然后向上移动。然后它应该移动到数据表中的下一个单元格。
我收到“运行时错误'1004':Range 类的删除方法失败”,我认为这是关于我声明的 Range 对象,但我不确定我应该如何正确实现它或者是否有更好的方法执行这个 VBA?这就是我到目前为止所拥有的。
Sub DeleteHighlight()
Dim cell As Range
For Each cell In Range("A6:O3863")
If ActiveCell.Interior.Color <> RGB(255,255,0) Then
ActiveCell.Delete Shift:=x1ToUp
Exit For
End If
Next cell
End Sub
解决方案
@Warcupine 是对的,您最终会跳过行。相反,您应该从底部循环到顶部。
Sub DeleteHighlight()
Dim lRow As Long
'find last row
lRow = Range("A1").CurrentRegion.Rows.Count
'loop backwards
For i = lRow To 1 Step -1
If Cells(i, 1).Interior.Color = RGB(255, 255, 0) Then
Rows(i).Delete
End If
Next
End Sub
推荐阅读
- flutter - 为什么这个 Dart 有返回类变量的问题,但可以返回它的副本?
- php - 在不同的应用程序上使用 laravel 队列/作业,需要建议
- c - C中加法类型转换的机制
- javascript - 现在如何使用 firebase.firestore.FieldValue.serverTimestamp()?
- ruby-on-rails - 可以配置 Rails 以加载每个项目的 .irbrc 文件吗?
- amazon-web-services - 如何每天每 6 小时运行一次 AWS Glue Crawler?
- django - 如何在 Django 中成功发布与投票 API 中的问题相关联的选项?
- javascript - 按位 - 为什么 0 & 1 !== 1 & 1 在 VSCode/Leetcode 中返回 false?
- python - test_train_split ValueError:发现样本数量不一致的输入变量:[200000, 6]
- javascript - Redux 在 dispatch 一个 action 后重置