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年
可能性のある重複した[例外(HRESULT:0x800AC472) Excel.Workbook.SaveAsを呼び出した後にExcel.Worksheet.Selectを使用する場合(http://stackoverflow.com/questions/20737432/exception-hresult-0x800ac472-when-using-excel-worksheet-select-after-calling) –
こんにちはトマシュ。私の場合、この問題はマシンがロックされたときに発生します。それ以外の場合は、コードが正常に動作します。これは上記のリンクの複製ではありません。 –