2012-02-02 54 views
1

我只是用Excel 2010年開始加載異常外接VSTO與和迅速通過此代碼生成異常難住了:C#的Excel當選擇公式欄和訪問Range.Value

public void DoIt() 
{ 
     Excel.Range selectedRange = Application.Selection as Excel.Range; 
     if (selectedRange == null) 
     { 
      System.Windows.Forms.MessageBox.Show("Nothing selected"); 
     } 
     else if(selectedRange.Cells.Count > 0) 
     { 
      selectedRange[1, 1].Value = "=2+3"; // exception on this line. 
      selectedRange[selectedRange.Rows.Count, selectedRange.Columns.Count].Value = "Birthday"; 
     } 
} 

通過首先單擊工作表中的單個單元格,然後單擊公式欄,然後運行上述功能(我通過功能區按鈕調用它),可以重現該異常。

任何人都可以建議發生了什麼事以及如何處理這個異常?謝謝。

+0

什麼是例外?哪一行會拋出? – 2012-02-02 01:57:44

+0

我不知道..這就是我問...「HRESULT異常:0x800A03EC」 – Jake 2012-02-02 02:00:32

+0

可能:http://stackoverflow.com/questions/7099770/hresult-0x800a03ec-on-worksheet-range – 2012-02-02 02:03:10

回答

2

例外是因爲在公式編輯模式下無法運行代碼。你也不能做很多其他的事情。例如,單擊公式欄並單擊Ctrl-N,通常會打開一個新的工作簿。什麼都沒發生。

我想你只需要抓住異常並退出Sub,它將模仿正常的Excel操作。

理想情況下,您希望禁用按鈕,就像大多數Excel功能區按鈕處於公式編輯模式時一樣。我不知道這是否可能。

+0

確定一個陷阱。謝謝! – Jake 2012-02-02 02:16:14