获取单元格填充颜色并根据该颜色删除单元格值



我是excel(2013)VB编码的新手,我需要编写一些代码来执行以下操作:

我有一个包含多个选项卡的 2013 工作簿。 我需要根据单元格填充颜色从其中一些选项卡(假设选项卡 X 和 Y)中删除值(可能是硬编码数字、分类数据 [例如"是/否"]或公式)。

1)首先,如何获取颜色索引,

或者更具体地说,颜色索引属性(我在这里可能没有使用完全正确的术语)? 我假设我需要从函数中获取这个确切的数字,然后将这个数字插入某个 sub 以删除条件值。

2)然后,如何使用该值编写一个子(?),该子将删除选项卡X和Y的特定单元格颜色中的所有值?

任何帮助将不胜感激。

谢谢。

单元格的颜色属性保存在单元格的interior对象中。要从选项卡"X"中的单元格B3获取颜色,您可以执行以下操作:

 Dim cellColor as Long
 cellColor = Sheets("X").Range("B3").Interior.Color

现在,单元格的颜色保持为可变cellColor

不过,这种颜色属性有点古怪。它是 RGB 的数字表示形式,采用以下形式:(R*256^2 + G*256 + B)有点像位掩码,但在字节级别。在此处查看第二个答案中的函数,如果需要,可以获取这些值的好方法。

实际上,最好的选择是绘制一个单元格,然后运行一个宏来告诉您颜色代码是什么。

假装您要删除工作表X范围A1:Z5000中红色 (65535) 的所有内容,您可以执行以下操作:

 Dim checkCell as Range 'cells are range objects

 For each checkCell in Sheet("X").Range("A1:Z5000").Cells 'loop through all the cells assigning the cell in each iteration to variable checkCell
      If checkCell.Interior.Color = 65535 Then 'is it red?
          checkCell.ClearContents 'null out the value
      End If
 Next checkCell

最新更新