Vba 修改应用程序范围不工作

Vba 修改应用程序范围不工作,vba,excel,Vba,Excel,我有一个工作表,其中有许多重复的条件格式实例。 我正在尝试编写代码来整理/删除其中的许多内容 我需要修改格式条件。 你知道为什么下面的方法不起作用吗 Sub UpdateCondition(ByRef bFirst As Boolean, rng As Range, f As FormatCondition, replacementFormula As String) If bFirst Then f.Modify f.Type, , replacementFormul

我有一个工作表,其中有许多重复的条件格式实例。 我正在尝试编写代码来整理/删除其中的许多内容

我需要修改格式条件。 你知道为什么下面的方法不起作用吗

Sub UpdateCondition(ByRef bFirst As Boolean, rng As Range, f As FormatCondition, replacementFormula As String)

    If bFirst Then
        f.Modify f.Type, , replacementFormula
        f.ModifyAppliesToRange rng
        bFirst = False
    Else
        f.Delete
    End If

End Sub
我得到以下错误:

对象“FormatCondition”的方法“ModifyAppliesToRange”失败

此代码适用于我的许多情况。只有一些人绊倒了

--编辑--

我的电话号码如下

Dim f As FormatCondition
Dim bFirst As Boolean
Dim i As Integer

Set rng = SomeRangeOnTheSheet

bFirst = True
For i = ActiveSheet.Range(Cells.Address).FormatConditions.Count To 1 Step -1
    Set f = ws.Range(Cells.Address).FormatConditions(i)
    If f.Formula1 = "..Some Formula.." Then
        UpdateCondition bFirst, rng, f, replacementFormula
    End If
Next
--编辑--


您如何调用此函数?需要查看传递给此函数的内容才能调试它。您如何在调用代码中实际设置
rng
?什么是
f
声明为?f应该声明为Object或Variant,因为并非所有条件格式都是
FormatCondition
类型。如果我没记错的话,只有那些有公式的类型是
FormatCondition
。另外,
Cells.FormatConditions
代替了
ActiveSheet.Range(Cells.Address).FormatConditions
谢谢Slai。但这不是我的问题。我的工作表上的所有条件格式都是FormatCondition类型。运行ModifyAppliesToRange语句时出错。
Function SomeRangeOnTheSheet() As Range
Dim cell1 As Range
Dim cell2 As Range

    Set cell1 = Cells(Range("Roster").row, Range("StartDate").Column)
    Set cell2 = Cells(Range("Roster").row + Range("Roster").Rows.Count - 1, Range("Roster").Column + Range("Roster").Columns.Count - 1)
    Set RosterDataRange = Range(cell1, cell2)

End Function