質問

VSTOを使用してExcelアドインを作成しています。

私の計画は、それらを文字列にシリアル化し、それらの文字列をワークブック内の名前の値に割り当てることにより、Excelワークブックの内部にオブジェクトを維持することです。

ただし、API関数を呼び出して新しい名前を追加すると、COMライブラリから不思議な例外が表示されます。

もっと正確には、私は呼んでいます

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

どこ

name = "an_object"

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)|"

仮説はということです value 文字列は、名前(違法な文字、長すぎるなど)に保存できる文字列としての資格はありませんが、制限が何であるかについてのドキュメントは見つかりません。

誰もがここで何が問題になっているのか知っていますか?

エラーメッセージは、誰かがそれを望んでいる場合に備えて、 Exception from HRESULT: 0x800A03EC

どうもありがとう。

役に立ちましたか?

解決

まだドキュメントはありませんが、いくつかの試行錯誤は、私のシリアル化されたオブジェクトが長すぎることを示唆しています。

他のヒント

参考文献でパラメーターを送信してみましたか?例えば ...ref name, ref value, ...

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top