【问题标题】:Cell Interior Color formatting based on other cells' value AND interior color in row单元格内部颜色格式基于其他单元格的值和行中的内部颜色
【发布时间】:2019-12-02 18:45:14
【问题描述】:

我正在努力使现有的大型电子表格更易于各种最终用户阅读。我无法分享实际的电子表格,但制作了这个示例页面来展示我正在尝试做的事情。

https://ibb.co/VY3c8c8

我想根据电子表格另一端该行中单元格的值和颜色来编辑 A 列中每个单元格的背景颜色。例如,如果 C1:G1 中的每个单元格的值 = X 或 O 并且颜色为绿色,则将 A1 填充设置为绿色。

我觉得我错过了一个简单的关键信息,但没有找到它可能是什么的运气。

我尝试了各种条件格式,但相信这是不可能的,因为您无法将 Interior.Color 拉入公式。

我尝试了各种各样的 vba,取得了不同程度的成功,但没有找到任何完全有效的方法。以下是我使用过的一些资源:

https://www.bluepecantraining.com/portfolio/excel-vba-macro-to-apply-conditional-formatting-based-on-value/

https://social.technet.microsoft.com/Forums/en-US/2fffa4d8-bbba-473b-9346-5fce8f0728a8/using-vba-to-change-a-cell-colour-based-on-the-information-in-a-different-cell-excel-2010?forum=excel

VBA checking cell interior color

Finding cells with certain interior color

此时,我的编码尝试非常混乱,我没有任何有意义的代码尝试可随时粘贴到此处。

【问题讨论】:

    标签: excel vba conditional-formatting


    【解决方案1】:

    当使用内部单元格颜色时,您在 VBA 中有两个选项。第一个.Interior.Color,第二个Interior.ColorIndex

    现在需要注意的是,如果您想检查一个单元格是否是某种颜色,您将需要一种统一的方法,以便您的所有用户都使用完全相同的颜色。例如,在 Excel 中使用默认的深绿色选项。

    颜色:Debug.Print ActiveCell.Interior.Color 在即时窗口中返回 5287936。 ColorIndex:Debug.Print ActiveCell.Interior.ColorIndex 在即时窗口中返回 14

    如果我们要使用这些信息,我们可以简单地编写一个 if 语句来读取:

    If Sheets("Sheet1").Range("C1").Interior.ColorIndex = 14 And Sheets("Sheet1").Range("C1").Text = "X" Then
        Sheets("Sheet1").Range("A1").Interior.ColorIndex = 14
    End If
    

    再次重申,使用的颜色需要统一,以便您使用 VBA 来选择它们。此外,您现在编写一个简单的双 For 循环来完成您的任务,并使用颜色和文本作为您的验证来为 A 列着色。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-29
      • 2015-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-21
      • 2023-01-13
      相关资源
      最近更新 更多