我想用下面的代码添加使用C#的条件格式。删除条件格式
Microsoft.Office.Interop.Excel.FormatCondition formatConditionObj = null;
formatConditionObj = (Microsoft.Office.Interop.Excel.FormatCondition)myRange
.FormatConditions.Add(Excel.XlFormatConditionType.xlExpression,
Type.Missing, true, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing);
formatConditionObj.Interior.ColorIndex = 5;
动态我改变,其中这些格式使用
formatConditionObj.ModifyAppliesToRange(NewRange);
现在我想删除这个格式应用如何才能实现这一目标应用的范围。
formatConditionObj.Delete();
这对我不起作用。这不会删除应用它的所有单元格的格式。只有最后一个单元格格式被删除。
我也使用
formatConditionObj.AppliesTo.Delete();
尝试,但它删除其他ConditionalFormats也被在该小区中应用。
注意:某些格式已应用于应用此条件格式的单元格,例如某些填充颜色。即使在某些单元格上应用了其他一些条件格式。我只想删除这个特定的条件格式(formatConditionObj)。
任何人都可以帮助我。
亚洲时报Siddharth您好。如上所述,我的问题是可能有一些格式已经应用在该单元格上,并且可能会在执行代码后添加一些格式。在这种情况下,如果我尝试删除xlWorkSheet.Cells [1,1] .formatconditions(1).delete();那么它可能会删除错误的格式。我不确定我想要删除的格式是否在第一位。 – 2012-08-08 11:50:13
同意,因此当你添加一个格式,格式编号存储在变量或循环通过每种格式,并与您的要求相匹配,如果这是正确的,然后删除它 – 2012-08-08 11:57:08
嗨siddharth上述逻辑工作正常,如果所有条件格式是通过C#代码应用的。如果某个条件格式化(CF)已经存在于该范围内,那么在删除之后它不会删除CF,并且它还会修改应用到的范围以调用删除。至于我所了解的,它将它改为了应用范围虽然优于范围从代码删除的交集。我不知道为什么会发生这种情况。 – 2012-08-17 12:48:31