验证代码产生错误InteropServices.COMException(0x800A03EC):来自HRESULT的异常:0x800A03EC

时间:2013-09-11 01:33:26

标签: python excel object model

我想使用Python和Excel对象模型库将验证代码添加到Excel工作簿中的单元格。我的代码如下:

valid = config.optionsSheet.Range('A2').Validation
valid.Delete()
valid.Add(XlDVType.xlValidateList, XlDVAlertStyle.xlValidAlertStop, \
    XlFormatConditionOperator.xlBetween, "=R20C4:R21C4", None)

上面的最后一行失败,出现以下错误:感谢任何帮助。

EnvironmentError: System.Runtime.InteropServices.COMException (0x800A03EC): Exception from HRESULT: 0x800A03EC

Server stack trace: 
   at Microsoft.Scripting.ComInterop.ComRuntimeHelpers.CheckThrowException(Int32 hresult, ExcepInfo& excepInfo, UInt32 argErr, String message)
   at CallSite.Target(Closure , CallSite , Object , Object , Object , Object , String , Object )
   at System.Dynamic.UpdateDelegates.UpdateAndExecute6[T0,T1,T2,T3,T4,T5,TRet](CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5)
   at CallSite.Target(Closure , CallSite , CodeContext , Object , Object , Object , Object , String , Object )
   at System.Dynamic.UpdateDelegates.UpdateAndExecute7[T0,T1,T2,T3,T4,T5,T6,TRet](CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6)
   at Microsoft.Scripting.Interpreter.DynamicInstruction`8.Run(InterpretedFrame frame)
   at Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame frame)
   at Microsoft.Scripting.Interpreter.LightLambda.Run2[T0,T1,TRet](T0 arg0, T1 arg1)

1 个答案:

答案 0 :(得分:0)

由于错误的公式,你得到了一个例外。

我建议您手动首先创建数据验证并更正它,直到它开始正常工作,我总是那样做。当手动键入错误的公式时(在使用列表方案的数据验证中),Excel中最常见的消息是:

  

列表源必须是分隔列表或对单个行或列的引用。

看看这些教程,它们可能会帮助您理解使用Excel中的列表进行验证的概念:

Apply data validation to cells - office.microsoft.com

Excel Data Validation Introduction - contextures.com