0

有没有办法可以存储并稍后恢复条件格式信息?选择一个单元格后,我想 1/ 将相应列/行的条件格式存储在某些数组中 2/ 删除相应列/行的条件格式 3/ 将列/行的内部颜色更改为不错的值(这样我就看到了crosshair) 4/ 在选择另一个单元格时,我想恢复原始列/行的 condformatting 并对当前选定的单元格从 1/ 重复该过程。

我尝试了类似的东西

Public condFmt1 As FormatCondition
Set condFmt1 = Range("A1").FormatConditions.Item(1)
...
Set Range("A2").FormatConditions.Item(1) = condFmt1

但是最后一行给了我一个运行时错误 438 - 对象确实支持这个属性或方法。我可能分配错误。

4

2 回答 2

1

在玩了一个小时之后,我找到了一种在 VBA 中使用 FormatCondition 值的方法。

此代码复制我的“A1”范围的条件格式,如果值为TRUE

Sub CopyFormatCondition()

    Dim fC As FormatCondition
    Set fC = Range("A1").FormatConditions.Item(1)

    Range("A2").FormatConditions.Add Type:=xlCellValue, Operator:=fC.Operator, Formula1:=fC.Formula1
    Range("A2").FormatConditions.Item(1).Font.Bold = fC.Font.Bold

End Sub

初始化 FormatCondition 时必须设置一些属性,例如Type,OperatorFormula1,因此我必须将 FormatCondition 添加到范围的 FormatConditions 集合中。

其他属性(例如 FontInterior)可以在 FormatCondition 的初始化之后设置。

于 2013-01-04T09:55:45.867 回答
1

假设您使用的是 Excel 2007 或更高版本,您也可以使用非 VBA 解决方案来实现您的目标:

  1. 使用工作表/工作簿中的空单元格作为触发单元格并将其设置为TRUE. 为方便起见,命名此单元格DisableConditionalFormatting或类似名称。
  2. 选择工作表的活动区域 (Ctrl-A) 并插入新规则 -> 使用公式确定要格式化的单元格。作为一个公式集=DisableConditionalFormatting。此处无需更改格式。
  3. 设置新规则后,确保选中Stop if true条件格式规则管理器中的复选框

不,您可以通过更改单元格来打开和关闭工作表的条件格式DisableConditionalFormatting

于 2013-01-04T14:39:14.923 回答