我有一个应用程序可以生成一个(相当大的)电子表格,其中包含需要进行颜色编码的用户输出。当我生成数据时,我发现需要着色的块,但是如果我一次只做一个块,给它们着色会很耗时。我想做的是维护一大组不连续的单元格,并使用一个 Excel 互操作调用对其进行着色。
现在我为每种颜色维护一个范围,每次我找到一个需要该颜色的新块时,我都会将现有范围和新块合并。然后在最后我为那个范围着色。不幸的是,对于大型案例来说,这真的很慢而且有点麻烦。有没有更好的方法来做到这一点?我觉得给几千个细胞上色不应该花这么长时间。:)
编辑 以下代码使用条件格式解决了它(假设 B 列中存在 CORRECT 和 INCORRECT 字样)
With newSheet.Range("B:B")
.FormatConditions.Add(Excel.XlFormatConditionType.xlCellValue, Excel.XlFormatConditionOperator.xlEqual, "CORRECT")
.FormatConditions(1).Interior.ColorIndex = 4
.FormatConditions.Add(Excel.XlFormatConditionType.xlCellValue, Excel.XlFormatConditionOperator.xlEqual, "INCORRECT")
.FormatConditions(2).Interior.ColorIndex = 3
End With
我仍然想做的唯一一件事是颜色不仅仅是包含“正确”的单元格。相反,我想为图表中的整行着色(例如,如果 B42 包含“正确”,我希望 A42:H42(包含它的行)为绿色)。有什么建议吗?