【问题标题】:IF/Then VBA Code based on cell colour. Not valueIF/Then 基于单元格颜色的 VBA 代码。不值
【发布时间】:2020-09-28 17:19:12
【问题描述】:

如果之前有人问过这个问题,我很抱歉。我环顾四周,似乎找不到答案。我是 VBA 新手,需要一些帮助。

是否可以在 VBA 上根据颜色完成一个 IF/Then 函数,然后用一个值替换颜色。

例子:

如果 Cell.Interior.ColorIndex = 255 那么 Cell.Value = 1

数据表中一些红色的单元格已经有值,而其他的则没有。我需要将它们全部更改为 1,以便我可以在数据透视表中单独计算它们。

非常感谢您

【问题讨论】:

  • 可能,但我猜您正在使用条件格式应用的着色,此时您需要使用.DisplayFormat.Interior
  • 我认为,如果颜色是由条件格式引起的,那么应该使用与条件格式相同的规则,而不是逻辑中单元格的颜色。
  • 其实我同意@ScottCraner,好点。
  • 感谢您的回复。因此,最初宏声明(如果较旧则 X 日期 = 255)它还填写了所有红色的空白。哪个是对的。然后我复制这些数据并删除所有不是红色的。所有的红色都被替换为 1,所以我可以旋转。我需要学习如何添加或搜索(如果范围内的单元格为红色,则值为 1)
  • Do While x

标签: excel vba colors


【解决方案1】:

Cell.Interior.ColorIndex 通常是 1 到 56 之间的值(当前调色板的大小),表示给定颜色在调色板中的位置。

Cell.Interior.Color 属性是一个 Long 值,表示 RGB 颜色值。这里的 255 是红色的 - 与 vbRed 的值相同

所以

If Cell.Interior.ColorIndex = 255 Then Cell.Value = 1

应该是

If Cell.Interior.Color = 255 Then Cell.Value = 1

【讨论】:

    猜你喜欢
    • 2018-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多