Excel批量编辑条件格式

问题描述 投票:0回答:1

我在工作簿中设置了几个条件格式公式,每年都需要更新。可能有接近 200-300 个单独的规则,但所有这些规则都包含一些变体 =>DATE(2024,3,31) 或 =

每个表格引用一年中不同的月份和日期,以便隐藏每张表格中不必要的日期。我会提前几周更新新年的电子表格,因此我希望它从当前年份更新到来年。目标是能够更改这些公式中的年份,同时保留月份和日期。并不总是由我来更新它,单独更新每个条目对他们来说将是一场噩梦。出于存档目的,我不能只设置公式来引用当前年份,否则我就会这样做。

我在另一个论坛上找到了与此问题类似的先前示例,但它似乎不适合我。

Sub ChangeYearTo2023()
    Dim cf As FormatCondition
    For Each cf In ActiveSheet.Cells.FormatConditions
        cf.Formula1 = Replace(cf.Formula1, "2022", "2023")
    Next
End Sub

当我更改它以反映我的需求时,我收到错误消息“编译错误:参数数量错误或属性分配无效”

excel vba conditional-formatting
1个回答
0
投票

只是两条评论的摘要:

a) 您无法写入 FormatCondition 对象的属性

Formula1
,它是只读属性。相反,请使用
Modify
-方法:

Sub ChangeYearTo2023()
    Dim cf As FormatCondition
    For Each cf In ActiveSheet.Cells.FormatConditions
        Dim formula as string
        formula = cf.Formula1  
        formula = Repace(f, "2022", "2023")
        fc.Modify xlExpression, Formula1:=formula
    Next
End Sub

b) 如果我在你那里,我会将日期存储在 Excel 中的某个位置,可以存储在单元格中(可以存储在隐藏工作表上),也可以存储为名称:

现在,您可以在所有条件格式公式中仅引用该名称(

=>SplitDate
),并且只需在一年结束时更改该值即可。

(请注意,在我的系统上分隔符是分号,也许您必须将其更改为逗号)

© www.soinside.com 2019 - 2024. All rights reserved.