0

質問 1: Excel にエクスポートするデータは、vb.net コードで 2 次元配列オブジェクトを使用して準備されています。この配列オブジェクトを ExcelRange.Value または .Value2 プロパティに割り当てようとすると、エクスポートするセル値のテキスト長が 8203 を超える場合を除いて正常に動作します (メッセージ「Exception from HRESULT: 0x800A03EC」で例外がスローされます)。

質問 2: 一方、excelrange.FormulaArray プロパティを使用すると、「Range クラスの FormulaArray プロパティを設定できません」というメッセージが表示されてエラーが発生します。しかし、文字列配列を使用して vb6 で正常に動作します。理由は何ですか ?以下は、excelrange.FormulaArray プロパティを使用した場合の詳細なエラーです。

System.Runtime.InteropServices.COMException was caught
ErrorCode=-2146827284
HelpLink="C:\Program Files (x86)\Microsoft Office\Office12\1033\XLMAIN11.CHM"
Message="Unable to set the FormulaArray property of the Range class"
Source="Microsoft Office Excel"
StackTrace:
   at System.RuntimeType.ForwardCallToInvokeMember(String memberName, BindingFlags flags, Object target, Int32[] aWrapperTypes, MessageData& msgData)
   at Excel.Range.set_FormulaArray(Object )
   at globalmodule.modglobconstant.ExportMsfgToExcel(AxMSFlexGrid& Msfg1, Boolean& flg, String FileName1)
InnerException:

この問題のExcel /ソリューションにエクスポートする他の代替方法は大歓迎です

4

1 に答える 1

0
  1. Excel 2010 のパフォーマンス: パフォーマンスと制限の改善によると、セル数式の制限は 8000 文字です。ただし、さらにテストを行ったところ、32767 文字の文字列が Excel 2007 で受け入れられることがわかりました (2010 のコピーは手元にありません)。

  2. .Valueテーブルから転送する場合、通常はまたは.Formulaを使用しますが、FormulaArrayこれは 1 つの数式がセルの範囲に適用される特別な場合に使用されます。

提出されたテスト ケースでは、VB 配列を Range.Value に割り当てようとしていました。これを変更して、配列の単一のメンバーを割り当てるとうまくいきました。

于 2013-03-23T10:27:23.047 に答える