Domanda

Sto usando VSTO per creare un componente aggiuntivo Excel.

Il mio piano è di persistere negli oggetti all'interno delle cartelle di lavoro di Excel serializzandole alle stringhe e assegnando quelle stringhe come i valori dei nomi nella cartella di lavoro.

Tuttavia, quando chiamo la funzione API per aggiungere il nuovo nome, ricevo una misteriosa eccezione dalla libreria COM.

Più precisamente, sto chiamando

_app.ActiveWorkbook.Names.Add(name, value, true,
            Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
            Type.Missing, Type.Missing, Type.Missing, Type.Missing);

dove

name = "an_object"

e

value = "TestTemplate|'Sheet1'!$A$1| 1Cube=(0,1):(1,2)| 2EntryNumber=(1,1):(2,2)| 3Description=(2,1):(3,2)| 4Group=(4,1):(5,2)| 5Repost=(3,1):(4,2)| 6Debit=(13,3):(16,4)| 7Credit=(13,2):(16,3)|Company=(6,1):(7,2)|Company Partner=(7,1):(8,2)|Time Monthly=(8,1):(9,2)|Currency=(9,1):(10,2)|Version=(10,1):(11,2)|Department=(13,0):(16,1)|Account=(13,1):(16,2)|"

Un'ipotesi è che il value La stringa non si qualifica come una stringa che può essere archiviata in un nome (personaggi illegali, troppo a lungo, ecc.) Ma non riesco a trovare alcuna documentazione su quali siano le restrizioni.

Qualcuno sa cosa non va qui?

Il messaggio di errore, nel caso in cui qualcuno lo voglia, lo è Exception from HRESULT: 0x800A03EC

Molte grazie.

È stato utile?

Soluzione

Ancora nessuna documentazione da nessuna parte, ma alcuni tentativi ed errori suggeriscono che il mio oggetto serializzato è troppo lungo.

Altri suggerimenti

Hai provato a inviare i parametri di Ref? per esempio ...ref name, ref value, ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top