2

在我的项目中,我有代码根据单元格值条件格式化单元格的背景颜色,如下所示:

//if value is 1 than colorIndex is 3;
Excel.FormatCondition condition = colorRange.FormatConditions.Add(
    Type: Excel.XlFormatConditionType.xlTextString, 
    Operator: Excel.XlFormatConditionOperator.xlEqual,
    Formula1: "=1");
condition5.Interior.ColorIndex = 3;

此条件工作正常,但以下代码中的条件不起作用:

//if value is Red Color than colorIndex is 3;
Excel.FormatCondition condition = colorRange.FormatConditions.Add(
    Type: Excel.XlFormatConditionType.xlTextString, 
    Operator: Excel.XlFormatConditionOperator.xlEqual,
    Formula1: "=Red Color");
condition5.Interior.ColorIndex = 3;

我收到的错误消息是“参数不正确”

我究竟做错了什么?

4

2 回答 2

1

我认为错误来自您传递的 Formula1 参数是一个公式。这意味着它应该像您在 Excel 单元格中手动编写的公式一样编写。这意味着当您将“红色”作为参数写入时,Excel 会尝试将其转换为公式,但语法错误并且会出现错误。

您可以尝试只输入“=Red”(不带字符串的颜色部分),它不会给您错误,但无论如何它都不起作用,因为它会将您单元格中的值与那个值进行比较包含在名为 Red 的单元格中(我想您的工作表中没有这样的单元格)。

解决方案是以这种方式将 " 放在你的字符串周围:

Excel.FormatCondition condition = colorRange.FormatConditions.Add(
    Type: Excel.XlFormatConditionType.xlTextString, 
    Operator: Excel.XlFormatConditionOperator.xlEqual,
    Formula1: "=\"Red Color\"");
于 2012-06-01T05:47:51.423 回答
1

你可以试试这个。这段代码为我提供了解决方案

 Excel.FormatCondition condition = colorRange.FormatConditions.Add(
     XlFormatConditionType.xlCellValue, 
     XlFormatConditionOperator.xlEqual,
     "=\"Red Color\"", 
     Type.Missing, 
     Type.Missing, 
     Type.Missing, 
     Type.Missing, 
     Type.Missing);
于 2013-12-28T12:23:12.847 回答