在我的项目中,我有代码根据像这样的单元格值条件格式化单元格的背面颜色:
//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;
我收到的错误消息是“参数不正确”
我做错了什么?
答案 0 :(得分:1)
我认为错误来自于您传递的Formula1参数是一个公式。这意味着它应该像您在Excel单元格中手动编写的公式一样编写。这意味着当您将“红色”作为参数编写时,Excel会尝试将其转换为公式,但语法错误并且它会给您错误。
你可以尝试只放“=红色”(没有字符串的颜色部分),它不会给你一个错误,但它无论如何都不会起作用,因为它会比较单元格中的值与名为Red的单元格中包含的那个(我想你的工作表中没有这样的单元格)。
解决方案就是“以这种方式围绕你串起来:
Excel.FormatCondition condition = colorRange.FormatConditions.Add(
Type: Excel.XlFormatConditionType.xlTextString,
Operator: Excel.XlFormatConditionOperator.xlEqual,
Formula1: "=\"Red Color\"");
答案 1 :(得分:1)
你可以尝试一下。这段代码为我提供了解决方案
Excel.FormatCondition condition = colorRange.FormatConditions.Add(
XlFormatConditionType.xlCellValue,
XlFormatConditionOperator.xlEqual,
"=\"Red Color\"",
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing);