基于单元格文本的 Microsoft.Office.Interop.Excel.Cells 上的 C# 条件格式

问题描述 投票:0回答:2

我用 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'

c# excel-formula excel-interop
2个回答
1
投票

老问题,但希望这对其他人有帮助。 当您将类型设置为

Type:Excel.XlFormatConditionType.xlTextString
时,您需要设置
String:
TextOperator:
参数,而不是问题中所示的
Operator:
Formula1:

修复代码:

FormatConditions.Add(Type:Excel.XlFormatConditionType.xlTextString,
    TextOperator: Excel.XlContainsOperator.xlContains, String: "delete");

0
投票

此语法正在更改单元格的颜色,但它实际上必须根据所选的下拉菜单进行更新

© www.soinside.com 2019 - 2024. All rights reserved.