让我说我有Sheet1在哪里
A B
1 foo foo
2 bar bar
和ReferenceSheet在哪里
A
1 bar <-- cell is formatted with red background
2 foo <-- cell is formatted with blue background
和所有其他编程示例一样,&#34; bar&#34;和&#34; foo&#34;是任意占位符值。 :)
我想使Sheet1中的每个单元格(A1:D4)与ReferenceSheet(A1:A2)中的定义单元格的值匹配,单元格将自动复制定义单元格的格式。 / p>
因此,继续上面的例子,Sheet1的背景颜色将被格式化为
A B
1 bl bl
2 red red
但是如果我将ReferenceSheet的格式更改为
A
1 bar <-- cell is formatted with pink background
2 foo <-- cell is formatted with black background
Sheet1的背景格式将更新为
A B
1 blk blk
2 pk pk
如果可能的话,如何实现这个目标呢?
==
*我想在工作表中定义我的格式(而不是在Visual Basic代码中),以便创建更多用户可访问的格式定义。如果这不是一个选项,Visual Basic(以及全局)定义将是我的下一个选择。应用于每个单元格的批量复制条件格式将是我的最后选择,尽管找到类似于Microsoft Word中的样式的样式抽象选项会使其成为更加苍白的选择。
答案 0 :(得分:0)
Worksheet_Change Sub
可以满足您的需求:
Private Sub Worksheet_Change(ByVal Target As Range)
'Place Sub in only the Reference Worksheet
'Do nothing if more than one cell is changed or content deleted
If Target.Cells.Count > 1 Or IsEmpty(Target) Then Exit Sub
With Sheets("Sheet1").Range("DefineRange").FormatConditions.Modify(Type:=xlCellValue, Operator:=xlEqual, Formula1:="=" & Target.Value)
.Interior.Color = Target.Interior.Color
End With
End Sub
编辑:我使用.Modify
,因为我假设如果单元格等于某个值,您将已经指定了条件格式。如果要添加新的条件格式设置规则,请改用.Add
。