当我尝试从FormatConditions集合中访问FormatCondition项时,我收到以下异常。
无法将“System .__ ComObject”类型的COM对象强制转换为接口类型“Microsoft.Office.Interop.Excel.FormatCondition”。此操作失败,因为由于以下错误,对IID为“{00024425-0000-0000-C000-000000000046}”的接口的COM组件的QueryInterface调用失败:不支持此类接口(HRESULT异常:0x80004002(E_NOINTERFACE))
我正在使用VS2010 SP1,C#,Excel 2010 32位
到目前为止,我创建了一个Excel电子表格,并向条件B3添加了条件格式。
在代码I中:
当我尝试以下操作时,我得到了上述异常:
fmtCond = (Excel.FormatCondition) testCell.FormatConditions.Item(1);
在另一台PC上使用VS2005和Excel 2007构建时,我正在使用的代码似乎工作正常。
答案 0 :(得分:0)
我没有尝试同时获取所有格式条件,而是在单独设置属性时发现它有效:
DestRange.FormatConditions.Add(Excel.XlFormatConditionType.xlCellValue, SourceRange.FormatConditions(1).Operator, SourceRange.FormatConditions(1).Formula1)
DestRange.FormatConditions(1).Interior.ColorIndex = SourceRange.FormatConditions(1).Interior.ColorIndex
其中DestRange
和SourceRange
分别是您要将属性传输到的区域和原始范围。如果您已指定FormatConditions
,则可能需要获取{{1}}的其他属性。