EntireRow.Delete 正在影响我的条件格式范围



我正在寻找删除行的方法,而不会影响我应用于工作表的条件格式范围。我希望我的 CF 范围保持不变(例如 $A$1:$A$5000(,但是每当我的代码删除一行时,第二个数字 (5000( 就会减少 1,而我希望它保持不变。无论如何,我可以删除我的行而不会影响CF 吗?

我也知道每次运行宏时,我都可以将条件格式应用于具有动态范围的工作表,但是如果我能避免它一起更改,我宁愿不经历将~20 CF场景重写为VBA的麻烦。这是我的循环,它遍历行并在满足条件时删除它们:

ActiveWorkbook.Worksheets("Master Sheet").Activate
Last = Cells(Rows.Count, "R").End(xlUp).Row
For i = Last To 1 Step -1
If (Cells(i, "R").Value) = "Business" Then
Cells(i, "A").EntireRow.Delete
End If
Next I

我认为另一种解决方案是添加一个简单的循环来循环浏览我设置的所有 CF 并将它们向下拖动到最后一行。这是一个可行的替代方案吗?

此快速循环应将工作表上每个 CFR 的终止行更改为 5000,假设它们从第 1 行开始。

With ActiveWorkbook.Worksheets("Master Sheet").Cells
For cfr = 1 To .FormatConditions.Count
With .FormatConditions(cfr)
If .AppliesTo.Cells(.AppliesTo.Cells.Count).Row < 5000 Then
.ModifyAppliesToRange Range:=.AppliesTo.Cells(1).Resize(5000)
End If
End With
Next cfr
End With

最新更新