2008-10-21 57 views
2

我正在使用.NET的COM Interop編寫Excel插件。我有一個彈出對話框的命令,在對話框中,我做了一些工作,比如從使用的幾張工作表中收集數據。問題是如果一個單元格處於編輯模式,我需要做的一些調用將會拋出異常。我希望事先確定Excel處於編輯模式,以便我可以提醒用戶先完成編輯單元格。如何判斷Excel應用程序是否處於單元格編輯模式?

任何想法?

回答

7

有是應該給你這個信息,但在實踐中不正常的Application.Ready財產。請參閱here以獲得解答。

你也可能想看看設置Application.Interactive =假,而.NET代碼是做它的東西。

+0

Hobbo,這正是我所需要的。謝謝! – 2008-10-22 11:42:18

3

試試這個功能:

Function IsInEditMode(ByRef exapp As Excel.Application) As Boolean 
     If exapp.Interactive = False Then 
      Return False 
     Else 
      Try 
       exapp.Interactive = False 
       exapp.Interactive = True 

       Return False 
      Catch 
       Return True 
      End Try 
     End If 
    End Function 
0

你沒有提到你使用的語言。 SZL's function是用VB編寫的。由於我使用C#,我必須將其轉換。工作很好。這是等效的C#代碼。

bool IsInEditMode(ref Microsoft.Office.Interop.Excel.Application exapp) 
    { 
     if (exapp.Interactive == false) 
     { 
      return false; 
     } 
     else 
     { 
      try 
      { 
       exapp.Interactive = false; 
       exapp.Interactive = true; 
       return false; 
      } 

      catch 
      { 
       return true; 
      } 
     } 

    } 
相關問題