Application.EditClear方法引起的COMException

时间:2013-12-24 03:04:47

标签: ms-project

我有一个由以下代码引起的COMException

MSProject.Application mspApp;
bool result = mspApp.SelectColumn(Constants.ACTUALS_RECENT_INDEX, Missing.Value, Missing.Value, Missing.Value);
mspApp.EditClear(Missing.Value, Missing.Value, Missing.Value, Missing.Value);

结果的值为true

以下是例外:

  

System.Runtime.InteropServices.COMException(0x000003EC):该方法发生意外错误。

     

at System.RuntimeType.ForwardCallToInvokeMember(String memberName,BindingFlags flags,Object target,Int32 [] aWrapperTypes,MessageData& msgData)

     

at Microsoft.Office.Interop.MSProject._MSProject.EditClear(Object Contents,Object Formats,Object Notes,Object Hyperlinks)

有人知道这个例外的原因吗?

2 个答案:

答案 0 :(得分:0)

听起来被选中的列是一个只读字段,例如ID,唯一ID,项目等。

确保选中的列是您真正想要的列。您可以通过在运行时创建表(并应用它)来完成此操作,这样您就可以确信用户没有更改活动视图和/或基础表。

答案 1 :(得分:0)

根本原因是在调用EditClear函数时应用了自定义过滤器。此过滤器将导致表中没有数据。如果不应用过滤器,问题就会消失。