2017-03-13 183 views
0

2次元配列を使用してExcelの範囲にデータを書き込みます。システムがロックされていないとき「range.value2 =データ」は問題なく実行されますCOM例外:システムロック時に0x800AC472が発生する(Excel VSTO)

Range range = SetRange(); // no. of rows and columns in the selected range is equal to the no.of rows and columns in the 2D Array 
object[,] data = new object[rows, columns]; 
for (int i = 0; i < rows; i++) 
{ 
    for (int j = 0; j < columns; j++) 
    { 
     data[i, j] = i+j; 
    } 
} 
range.value2 = data; 

操作:それは次のようになり、システムがロックされState.Theコードしていないときに期待どおりに動作します。しかし、私がシステムをロックし、この操作を試みると、この操作を実行するときに例外メッセージ "例外からHRESULT:0x800AC472"が出ます。

私はこれがCOM例外であることを理解していますが、私は何も考えていません。どうしてこのような状況で育ったのですか?この問題は、システムがロックされた状態でのみ発生します。それ以外の場合は、同じコードがうまく動作します。

私は現在、マイクロソフトのVisual Studio 2010やMicrosoft Excelに取り組んでいます2007年

+0

可能性のある重複した[例外(HRESULT:0x800AC472) Excel.Workbook.SaveAsを呼び出した後にExcel.Worksheet.Selectを使用する場合(http://stackoverflow.com/questions/20737432/exception-hresult-0x800ac472-when-using-excel-worksheet-select-after-calling) –

+0

こんにちはトマシュ。私の場合、この問題はマシンがロックされたときに発生します。それ以外の場合は、コードが正常に動作します。これは上記のリンクの複製ではありません。 –

答えて

関連する問題