1

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

どうもありがとう。

4

2 に答える 2

0

パラメータを ref で送信しようとしましたか? 例えば...ref name, ref value, ...

于 2010-05-22T07:44:52.880 に答える
0

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

于 2010-05-18T15:29:30.937 に答える