我在C#中創建Excel插件並使用插件按鈕單擊更改某些單元格值。它工作順利,但是,我注意到,如果用戶試圖在任何單元格中輸入某些內容(不僅是我要更改值的內容),它總是會拋出HRESULT: 0x800A03EC
異常。Excel中拋出異常HRESULT:0x800A03EC用戶仍在鍵入單元格和單元格值更改
我的代碼很簡單,比如我只有這一段代碼測試這樣的:
private void buttonFoo_Click(object sender, RibbonControlEventArgs e)
{
var ws = Globals.ThisAddIn.Application.ActiveSheet;
ws.Range["A1"].Value = "bar";
}
當我點擊一個隨機的單元格中鍵入「富」,但我不任意位置單擊在工作表上,我沒有完成寫「富」,而是我點擊buttonFoo,而我仍然集中在我的單元格,它會拋出這個異常。
這張照片可以解釋我想要做的,我會在測試按鈕的圖片被點擊,同時仍打字這樣的:
我認爲這是例外,如果發生我試圖在特定的單元格中輸入某些內容,並且該特定的單元格也在我的代碼中更改。但事實並非如此。我試過選擇一個未使用的單元,如下所示:
ws.Range["B1"].Select();
沒有幫助。我試着發送ESC鍵取消用戶鍵入:
excelApp.SendKeys("{ESCAPE}");
我測試了這一點,它實際上將發送逃跑,但它仍然會拋出異常。我完全沒有想法,並沒有發現任何關於這個問題。我的意思是我可以用try/catch尋找這個異常來包圍所有東西,但這太可怕了。任何人都知道該怎麼做?
由於應用程序在編輯模式下,大部分的代碼將不會運行,直到編輯完一個單元格。先嚐試檢查應用程序的'.Interactive'屬性。 –
我剛剛嘗試更改'.Interactive',但它仍然會引發異常,當我嘗試它..也許它只是不可能運行代碼,而應用程序處於編輯模式? – Peroxy