我正在构建一个住宅堆叠计划,其中每个单元格=具有条件格式的特定颜色的单元类型。 每个单元的2个表格如下所示,反映了平方米的大小和$值。
我需要反映仅细胞'颜色见下表。
我需要一个动态的解决方案,并且更愿意避免使用vba(因为我并不精通),但如果需要,我会使用它。提前谢谢!
答案 0 :(得分:1)
如果您将颜色代码值(B21:B26)从2 rooms
更改为2
(以匹配您的第二个表格),则应遵循以下规则。基本上,此代码不使用条件格式化。从条件格式中获取颜色可能有点费力和棘手(谷歌" excel vba找到颜色条件格式")。相反,当前代码读取颜色代码单元格中的颜色,并将其应用于其他两个范围。
Private Sub BckgndColor()
Dim ColorCodeRange As Range
Dim NoOfRooms As Range
Dim CellColorIndex As Integer
Dim c As Range
Dim d As Object
Set ColorCodeRange = Worksheets("Sheet1").Range("B21:B26")
Set d = CreateObject("scripting.dictionary")
'Add the pairs (value, color) to dictionary
For Each c In ColorCodeRange.Cells
d.Add c.Value, c.Interior.ColorIndex
Next
Set NoOfRooms = Worksheets("Sheet1").Range("M25:V36") 'Here the range of Table 2 (M25:V36 in your example)
'Scan range, and assign color
For Each c In NoOfRooms.Cells
If d.Exists(c.Value) Then
c.Interior.ColorIndex = d(c.Value)
c.Offset(16, 0).Interior.ColorIndex = d(c.Value) 'If Table 3 is always 16 rows down, this shoud work
End If
Next
Set d = Nothing
End Sub
答案 1 :(得分:1)
在第一个表上正常设置条件格式,如下所示:
注意我的表格从C4开始,但是你的表位于不同的地方,应该相应调整。确保您在规则中的公式上没有$符号,但是您确实在“适用于”部分中有了这个符号
现在将此格式复制并粘贴到第二个表格上。
最后在条件格式中编辑公式,使它们指向FIRST表的起始单元格。它应该是这样的:
请注意,格式'适用于'第二个表,但在公式中引用第一个表中的值。
结果如下:
如果需要,您可以对其他表重复此操作。
当您在Excel 2003(!)中工作时,请按照以下步骤操作:
答案 2 :(得分:0)
我在表 2 中给出了选项数据验证列表,当我按列表选择选项时,单元格会改变。对于那个单元格,我也想从 sheet1 到 sheet2 的源表中获取颜色。