我正在使用.NET的COM Interop編寫Excel插件。我有一個彈出對話框的命令,在對話框中,我做了一些工作,比如從使用的幾張工作表中收集數據。問題是如果一個單元格處於編輯模式,我需要做的一些調用將會拋出異常。我希望事先確定Excel處於編輯模式,以便我可以提醒用戶先完成編輯單元格。如何判斷Excel應用程序是否處於單元格編輯模式?
任何想法?
我正在使用.NET的COM Interop編寫Excel插件。我有一個彈出對話框的命令,在對話框中,我做了一些工作,比如從使用的幾張工作表中收集數據。問題是如果一個單元格處於編輯模式,我需要做的一些調用將會拋出異常。我希望事先確定Excel處於編輯模式,以便我可以提醒用戶先完成編輯單元格。如何判斷Excel應用程序是否處於單元格編輯模式?
任何想法?
有是應該給你這個信息,但在實踐中不正常的Application.Ready財產。請參閱here以獲得解答。
你也可能想看看設置Application.Interactive =假,而.NET代碼是做它的東西。
試試這個功能:
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
你沒有提到你使用的語言。 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;
}
}
}
Hobbo,這正是我所需要的。謝謝! – 2008-10-22 11:42:18