如果该值与另一列中的值不同,则需要为单元格的文本应用颜色。最好的方法是什么?我能想到的方法是非常昂贵的。

 for (int i = 0; i < ColumnARange.Cells.Count; i++)
                    {
                        if (ColumnARange.Cells[i, 1] != ColumnBRange.Cells[i, 1])
                        {
                            Range currCell = ColumnBRange.Cells[i, 1];
                            currCell.Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red);
                        }
                    }

尝试了以下条件格式,但徒劳无功。
FormatCondition cond = ColumnBRange.FormatConditions.Add(XlFormatConditionType.xlCellValue, XlFormatConditionOperator.xlNotEqual, ColumnARange);
                cond.Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red);

我正在使用VSTO,C#

最佳答案

下面的代码向D1到E10的单元格范围添加条件格式
它分别比较值D1 = E1或D2 = E2。您可以设置字体颜色,或在FormatCondition对象上填充颜色。

FormatCondition format =(FormatCondition)( targetSheet.get_Range("D1:E10",
                Type.Missing).FormatConditions.Add(XlFormatConditionType.xlExpression,
                                                   XlFormatConditionOperator.xlEqual,
                                                   "=$D1=$E1",
                                                   Type.Missing, Type.Missing, Type.Missing,
                                                   Type.Missing, Type.Missing));

            format.Font.Bold = true;
            format.Font.Color = 0x000000FF;

关于c# - 使用C#在Excel中进行条件格式设置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10240132/

10-11 04:21