Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 基于单元格颜色的IF/Then VBA代码。不值_Excel_Vba_Colors - Fatal编程技术网

Excel 基于单元格颜色的IF/Then VBA代码。不值

Excel 基于单元格颜色的IF/Then VBA代码。不值,excel,vba,colors,Excel,Vba,Colors,如果以前有人问过这个问题,我很抱歉。我环顾四周,似乎找不到答案。我是VBA新手,希望得到一些帮助 是否可以基于颜色在VBA上完成IF/Then功能,然后用值替换颜色 例如: 如果Cell.Interior.ColorIndex=255,则Cell.Value=1 数据表中的某些红色单元格已经有值,其他单元格则没有。我需要将它们全部更改为1,以便在数据透视表中单独计算它们 非常感谢您Cell.Interior.ColorIndex通常是1到56之间的值(当前颜色托盘的大小),表示给定颜色在托盘中的

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

是否可以基于颜色在VBA上完成IF/Then功能,然后用值替换颜色

例如:

如果Cell.Interior.ColorIndex=255,则Cell.Value=1

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


非常感谢您

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

Cell.Interior.Color
属性是一个长值,表示RGB颜色值。此处255为红色-与
vbRed的值相同

所以

应该是

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

可能,但我猜你正在使用条件格式应用的颜色,在这一点上,您需要使用
.DisplayFormat.Interior
。我认为,如果颜色是由条件格式引起的,那么应该使用与条件格式相同的规则,而不是逻辑中单元格的颜色。事实上,我同意@ScottCraner的说法,这一点很好。感谢您的回复。因此,最初的宏声明(如果早于X date=255),它也会将所有空格填充为红色。这是正确的。然后我复制这些数据并删除所有不是红色的内容。所有的红军都被1替换,这样我就可以旋转了。我需要学习如何在xIf Cell.Interior.Color = 255 Then Cell.Value = 1