2013-09-11 59 views
0

我想使用Python和Excel對象模型庫將驗證代碼添加到Excel工作簿中的單元格。我的代碼是:驗證代碼會產生錯誤InteropServices.COMException(0x800A03EC):來自HRESULT的異常:0x800A03EC

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) 

回答

0

由於公式錯誤,您會收到異常。

我建議你手動首先創建數據驗證並更正它,直到它開始正常工作,我總是這樣做。從Excel中最常見的消息時手動輸入一個錯誤的公式(在數據驗證使用列表的情況)是:

The list source must be a delimited list or a reference to a single row or column.

看看這些教程,他們可能會幫助你理解驗證使用列表Excel中的概念:

Apply data validation to cells - office.microsoft.com

Excel Data Validation Introduction - contextures.com

相關問題