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

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

我也知道,每次运行macros时,我都可以将条件格式应用到工作表中,但是我宁愿避免将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 

我认为,另一种解决scheme是添加一个简单的循环来遍历所有我设置的CF,并将它们拖到lastrow。 这会是一个可行的select吗?

这个快速循环应该将工作表中每个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