我用 C# 和
Microsoft.Office.Interop.Excel
编写代码。生成一个下拉列表,可以在“好的”、“删除”、“其他”之间进行选择。现在我希望如果选择“删除”,单元格就会变成红色。我尝试用 Excel.FormatCondition
来做到这一点:
Excel.FormatCondition condition = mysheet.get_Range("J2:J10",
Type.Missing).FormatConditions.Add(Type:Excel.XlFormatConditionType.xlTextString,
Operator: Excel.XlFormatConditionOperator.xlEqual, Formula1: "=\"delete\"");
condition.Interior.ColorIndex = 3;
使用此代码我收到错误:
System.Runtime.InteropServices.COMException:'来自 HRESULT 的异常: 0x800A03EC'
老问题,但希望这对其他人有帮助。 当您将类型设置为
Type:Excel.XlFormatConditionType.xlTextString
时,您需要设置String:
和TextOperator:
参数,而不是问题中所示的Operator:
和Formula1:
。
修复代码:
FormatConditions.Add(Type:Excel.XlFormatConditionType.xlTextString,
TextOperator: Excel.XlContainsOperator.xlContains, String: "delete");
此语法正在更改单元格的颜色,但它实际上必须根据所选的下拉菜单进行更新