Hvordan finne ut om Excel Søknad er i celle-redigeringsmodus?

stemmer
2

Jeg skriver et Excel Addin bruke COM Interop fra .net. Jeg har en kommando som dukker opp en dialogboks, og fra dialogen jeg gjøre noe arbeid som å samle inn data fra den brukte utvalg av flere ark. Problemet er at hvis en celle er i redigeringsmodus, noen av samtalene som jeg trenger å gjøre vil kaste unntak. Jeg vil gjerne ha en måte å bestemme før hånd som Excel er i redigeringsmodus, slik at jeg kan advare brukeren om å fullføre redigeringen cellen først.

Noen ideer?

Publisert på 21/10/2008 klokken 12:02
kilden bruker
På andre språk...                            


3 svar

stemmer
7

Det er en Application.Ready eiendom som er ment å gi deg denne informasjonen, men i praksis fungerer det ikke pålitelig. Se her for en hackaround.

Du kan også være lurt å se på innstillingen Application.Interactive = false mens .net kode gjør sine ting.

Svarte 21/10/2008 kl. 14:16
kilden bruker

stemmer
3

Prøv denne funksjonen:

    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
Svarte 31/07/2014 kl. 09:31
kilden bruker

stemmer
0

Du nevnte ikke hvilket språk du bruker. SZL funksjon er skrevet i VB. Siden jeg bruker C # Jeg måtte konvertere den. Fungerte bra. Her er den tilsvarende C # -kode.

    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;
            }
        }

    }
Svarte 03/08/2017 kl. 18:01
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more