NomeTipo VBA

Questo articolo dimostrerà l'utilizzo della funzione TypeName VBA.

Il VBA NomeTipo La funzione viene utilizzata per determinare il tipo di dati archiviati in una cella o il tipo di un oggetto selezionato, ad esempio un foglio di lavoro, un intervallo o una cella o un controllo in un modulo.

Determinazione del tipo di dati in una cella

Per determinare il tipo di dati in una cella, possiamo usare la funzione TypeName con la proprietà Cells.

123 Sub TestCellDataType()MsgBox "Il tipo di dati in " & Cells(3, 2).Address & " è " & TypeName(Cells(3, 2).Value)Fine sottotitolo

Se eseguiamo questo codice sopra con il foglio di lavoro sottostante, la finestra di messaggio ci dirà che tipo di dati è nella cella.

Determinazione del tipo di oggetto selezionato

Possiamo anche usare TypeName per determinare quale tipo di oggetto è stato selezionato in un foglio di lavoro, ad esempio un intervallo o un grafico.

123 Sub TestSelection()MsgBox "Hai selezionato un " & TypeName(Selection)Fine sottotitolo

Oppure, se selezioniamo un grafico:

Possiamo approfondire ulteriormente e selezionare gli oggetti all'interno del grafico e la macro restituirà ciò che abbiamo selezionato.

Tutto ciò può essere molto utile nella creazione del nostro progetto VBA per controllare il flusso del codice o per evitare che si verifichino errori verificando per garantire che sia selezionato il tipo corretto di oggetto o che il tipo corretto di dati venga inserito in una cella .

Utilizzo di TypeName sui controlli del modulo

VBA ci consente di creare moduli interattivi che l'utente può compilare e restituire dati al codice da utilizzare in vari modi. Possiamo utilizzare l'operatore TypeName per determinare il tipo di controlli che vengono utilizzati in un form.

Nell'esempio seguente, ho creato un modulo utente con una varietà di controlli: un paio di caselle di testo, una casella combinata, 2 pulsanti di opzione, 2 caselle di controllo e 3 pulsanti di comando.

Utilizzando il codice riportato di seguito, posso determinare quale tipo di controlli sono presenti nel form eseguendo un ciclo di tutti i controlli sul form. Ho usato la funzione TypeName per restituire un messaggio con il tipo del controllo con un'istruzione IF VBA per verificare quale tipo di controllo è selezionato.

123456 Sub WhatControlType()Dim ctl come oggettoPer ogni ctl In Me.ControlsMsgBox "Il controllo è un " & TypeName(ctl)Avanti ctlFine sottotitolo

Questo tipo di codice può essere molto utile se desideriamo abilitare o disabilitare i controlli. Nel codice seguente, quando il modulo viene aperto per la prima volta, i pulsanti di opzione e le caselle di controllo sono disabilitati.

123456789101112 Private Sub UserForm_Initialize()Dim ctl come oggettoPer ogni ctl In Me.ControlsSe TypeName(ctl) = "CheckBox" Thenctl.Enabled = FalseElseIf TypeName(ctl) = "OptionButton" Thenctl.Enabled = FalseAltroctl.Enabled = TrueFinisci seAvanti ctlFine sottotitolo

Per abilitare i pulsanti di opzione e le caselle di controllo, ho scritto un ulteriore codice dietro il pulsante Abilita controlli.

12345678910 Sotto privato cmdEnable_Click()Dim ctl come oggettoPer ogni ctl In Me.ControlsSe TypeName(ctl) = "CheckBox" Thenctl.Enabled = Non ctl.EnabledElseIf TypeName(ctl) = "OptionButton" Thenctl.Enabled = Non ctl.EnabledFinisci seAvanti ctlFine sottotitolo

La funzionalità in questo codice può essere creata anche utilizzando l'operatore VBA TypeOf.

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave