0

我想使用 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)
4

1 回答 1

0

由于错误的公式,您会遇到异常。

我建议您先手动创建数据验证并对其进行更正,直到它开始正常工作,我总是这样做。手动输入错误公式(在使用列表的数据验证场景中)时,来自 Excel 的最常见消息是:

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

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

对单元格应用数据验证 - office.microsoft.com

Excel 数据验证介绍 - contextures.com

于 2013-10-03T09:52:41.477 回答