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