"Il valore non rientra nell'intervallo previsto" quando si scrive a Workbook.CustomDocumentProperties

Una semplice assegnazione come quella sottostante da un'applicazione console scritta in C #:

workbook.CustomDocumentProperties.Item["PropertyName"] = "Property Value"; 

Produce il seguente errore:

 {"Value does not fall within the expected range."} Data: {System.Collections.ListDictionaryInternal} HResult: -2147024809 HelpLink: null IPForWatsonBuckets: 0x633f1015 InnerException: null IsTransient: false Message: "Value does not fall within the expected range." ParamName: null RemoteStackTrace: null Source: "System.Dynamic" StackTrace: " at System.Dynamic.ComRuntimeHelpers.CheckThrowException(Int32 hresult, ExcepInfo& excepInfo, UInt32 argErr, String message)\r\n at CallSite.Target(Closure , CallSite , Object , String , Object )\r\n at System.Dynamic.UpdateDelegates.UpdateAndExecute3[T0,T1,T2,TRet](CallSite site, T0 arg0, T1 arg1, T2 arg2)\r\n at CustomDocumentProperties.Program.WriteToExcelCustomDocumentProperties(String excelFile, String outputFolder, String propertyName, Object propertyValue) in C:\\Sathyaish\\DotNet\\CustomDocumentProperties\\CustomDocumentProperties\\Program.cs:line 100" TargetSite: {Void CheckThrowException(Int32, System.Dynamic.ExcepInfo ByRef, UInt32, System.String)} WatsonBuckets: null _HResult: -2147024809 _className: null _data: {System.Collections.ListDictionaryInternal} _dynamicMethods: {object[2]} _exceptionMethod: {Void CheckThrowException(Int32, System.Dynamic.ExcepInfo ByRef, UInt32, System.String)} _exceptionMethodString: null _helpURL: null _innerException: null _ipForWatsonBuckets: 0x633f1015 _message: "Value does not fall within the expected range." _remoteStackIndex: 0 _remoteStackTraceString: null _safeSerializationManager: {System.Runtime.Serialization.SafeSerializationManager} _source: "System.Dynamic" _stackTrace: {sbyte[96]} _stackTraceString: null _watsonBuckets: null _xcode: -532462766 _xptrs: 0x00000000 m_paramName: null 

Ho provato prima a call il metodo Add sulla properties; CustomDocumentProperties così:

 workbook.CustomDocumentProperties.Add("PropertyName", "Property Value"); 

Quando ciò non è riuscito, ho esaminato la documentazione , che osserva come segue (enfasi mine):

Questa properties; restituisce l'intera raccolta di properties; del documento personalizzate. Utilizzare la properties; Microsoft.Office.Core.DocumentProperties.Item (System.Object) per restituire un singolo membro della raccolta (un object Microsoft.Office.Core.DocumentProperties) specificando il nome della properties; o l'indice di raccolta (come un numero).

  • Avvio di un VSTO dall'ufficio esterno
  • One Solution collect form web for “"Il valore non rientra nell'intervallo previsto" quando si scrive a Workbook.CustomDocumentProperties”

    In Word (e probabilmente in Excel), se la properties; non esiste, è ansible impostarla con il metodo CustomDocumentProperties.Add. Tuttavia, è necessario essere sicuri di passare un parametro Type, che nel vostro caso sarebbe MsoDocProperties.msoPropertyTypeString.

    Spero che questo ti aiuti.

    Microsoft Office Excel Spreadsheet è il miglior software di Office, Excel VBA e formule Excel rendono il foglio di calcolo più veloce.