如何判断Excel Application是否处于单元格编辑模式?

Sam*_*ack 2 .net excel vsto com-interop

我正在使用来自.net的COM Interop编写Excel Addin.我有一个弹出对话框的命令,从对话框中我做了一些工作,比如从几张纸的使用范围中收集数据.问题是如果一个单元格处于编辑模式,我需要进行的一些调用将抛出异常.我想要一种确定Excel处于编辑模式的方法,以便我可以警告用户先完成编辑单元格.

有任何想法吗?

Hob*_*bbo 8

有一个Application.Ready属性可以为您提供此信息,但在实践中它不能可靠地工作.看到这里的hackaround.

您可能还希望在.net代码正在执行其操作时查看设置Application.Interactive = false.


SZL*_*SZL 5

试试这个功能:

    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
Run Code Online (Sandbox Code Playgroud)