如何判断Excel Application是否处于单元格编辑模式?
-
03-07-2019 - |
题
我正在使用来自.net的COM Interop编写Excel Addin。我有一个弹出对话框的命令,从对话框中我做了一些工作,比如从几张纸的使用范围中收集数据。问题是如果一个单元格处于编辑模式,我需要进行的一些调用将抛出异常。我想要一种确定Excel处于编辑模式的方法,以便我可以警告用户首先完成对单元格的编辑。
有什么想法吗?
解决方案
有一个Application.Ready属性可以为您提供此信息,但实际上它不能可靠地工作。有关解决方法,请参见此处。
您可能还想查看在.net代码正在执行其操作时设置Application.Interactive = false。
其他提示
尝试此功能:
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的功能是用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;
}
}
}
不隶属于 StackOverflow