0

我有以下函数 =AND(EXACT(B3;F3);EXACT(F3;J3)) 返回 TRUE 或 FALSE。我想创建一个单元格规则,用于将错误值着色为红色,将真实值着色为绿色。尝试使用以下代码,但无法正常工作,我做错了什么?

   Excel.FormatConditions fcs = xlWorkSheet.Cells[i,"M"].FormatConditions;
                    Excel.FormatCondition fc = (Excel.FormatCondition)fcs.Add(Excel.XlFormatConditionType.xlTextString, Excel.XlFormatConditionOperator.xlEqual, "TRUE");
                    Excel.Interior interior = fc.Interior;
                    interior.Color = ColorTranslator.ToOle(Color.LightGreen);
                    Excel.Font font = fc.Font;
                    font.Color = ColorTranslator.ToOle(Color.ForestGreen);
                    fc = (Excel.FormatCondition)fcs.Add(Excel.XlFormatConditionType.xlTextString, Excel.XlFormatConditionOperator.xlEqual, "FALSE");
                    interior.Color = ColorTranslator.ToOle(Color.LightSalmon);
                    font.Color = ColorTranslator.ToOle(Color.Red);
4

2 回答 2

0

您没有将颜色与给定的规则相关联(但与与条件格式无关的变量)。此外,您应该更好地依赖xlCellValue. 此代码提供您所追求的:

Excel.FormatCondition fc = (Excel.FormatCondition)fcs.Add(Excel.XlFormatConditionType.xlCellValue, Excel.XlFormatConditionOperator.xlEqual, "TRUE", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
fc.Interior.Color = ColorTranslator.ToOle(Color.LightGreen);
fc.Font.Color = ColorTranslator.ToOle(Color.ForestGreen);

fc = (Excel.FormatCondition)fcs.Add(Excel.XlFormatConditionType.xlCellValue, Excel.XlFormatConditionOperator.xlEqual, "FALSE", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
fc.Interior.Color = ColorTranslator.ToOle(Color.LightSalmon);
fc.Font.Color = ColorTranslator.ToOle(Color.Red);
于 2013-09-23T14:26:25.713 回答
0

(为将其发布为答案而道歉,但我还没有足够的代表来添加评论)你有一行:

Excel.FormatCondition fc = (Excel.FormatCondition)fcs.Add(Excel.XlFormatConditionType.xlTextString, Excel.XlFormatConditionOperator.xlEqual, "TRUE");

您的第三个参数“TRUE”通常代表公式。如果您想让它工作,您需要将其更改为“=TRUE”。同样,您有“FALSE”,应该更新为“=FALSE”。

您还需要在上面包含@varocarbas 建议。

于 2013-09-23T14:28:33.823 回答