在VBA中存储/加载条件格式信息
有没有一种方法可以存储和以后恢复条件格式信息? 在select一个单元格时,我想要在某些数组中存储对应的列/行的格式2 /删除相应的列/行的格式3 /将列/行的InteriorColor更改为好的(以便我看到十字线)4 /select另一个单元格时,我想恢复原始列/行的格式,并从当前选定单元格的1 /重复该过程。
我试过类似的东西
Public condFmt1 As FormatCondition Set condFmt1 = Range("A1").FormatConditions.Item(1) ... Set Range("A2").FormatConditions.Item(1) = condFmt1
然而,最后一行给我一个runTime错误438 – 对象确实支持这个属性或方法。 我可能分配错误。
在玩了一个小时之后,我发现了一种在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
, Operator
和Formula1
等属性,因此我必须将FormatCondition添加到范围的FormatConditions集合中。
其他属性(例如Font
和Interior
)可以在FormatCondition的初始化之后设置。
假设您使用的是Excel 2007或更高版本,那么您也可以使用非VBA解决scheme实现您的目标:
- 在工作表/工作簿中使用空单元格作为触发单元格,并将其设置为
TRUE
。 为方便起见,将此单元命名为DisableConditionalFormatting
或类似的。 - select工作表的活动区域(Ctrl-A)并插入新规则 – >使用公式来确定要格式化的单元格。 作为一个公式设置
=DisableConditionalFormatting
。 这里不需要改变格式。 - 设置新规则后,请务必在条件格式设置规则pipe理器中选中checkbox
Stop if true
”
不,您可以通过更改单元格DisableConditionalFormatting
打开和closures工作表的条件格式。