Casella di riepilogo VBA - Elemento selezionato

Questo articolo dimostrerà come lavorare con l'elemento selezionato in una casella di riepilogo in Excel VBA.

Le caselle di riepilogo sono ampiamente utilizzate nei moduli VBA ma possono essere utilizzate anche all'interno del foglio di lavoro Excel. Mostrano agli utenti un elenco di opzioni, una o più delle quali l'utente può selezionare.

Creazione di una casella di riepilogo in un modulo VBA

Per creare una casella di riepilogo in un modulo VBA, dobbiamo prima creare il Form utente.

Una volta creato il modulo, seleziona il controllo Casella di riepilogo nella casella degli strumenti e quindi trascina per creare una casella di riepilogo nel modulo.

Aggiunta di valori alla casella di riepilogo

Nell'evento Inizializza del modulo, digitare il codice seguente. La casella di riepilogo raccoglierà i valori memorizzati in un intervallo di celle nel foglio di lavoro Excel.

123456 Private Sub UserForm_Initialize()Dim rng come intervalloPer ogni rng nell'intervallo ("A1: A50")Me.lstState.AddItem rng.Valuerng successivoFine sottotitolo

Quando eseguiamo il modulo, la casella di riepilogo verrà mostrata come mostrato nell'immagine seguente:

Selezione dei valori dalla casella di riepilogo

Per impostazione predefinita, è possibile selezionare un singolo valore in una casella di riepilogo in un modulo utente. Tuttavia questo può essere modificato modificando la proprietà Multi-Select della casella di riepilogo.

Fare clic sulla casella di riepilogo per selezionarla, quindi nella finestra Proprietà, modificare la proprietà a selezione multipla da 0-frmMultiSelectSingle a 1-frMultiSelectMulti.

Ora, quando eseguiamo il modulo, possiamo selezionare più di un'opzione nella casella di riepilogo.

Se cambiamo l'opzione per essere 2-frmMultiSelectExtended, significa che possiamo selezionare uno dei valori, e quindi, tenendo premuto il tasto SHIFT, selezionare un altro valore più in basso nell'elenco e verranno selezionati anche tutti gli elementi compresi tra i 2 valori selezionati.

Programmazione VBA | Il generatore di codice funziona per te!

Lavorare con i valori selezionati in VBA

A seconda del tipo di opzione che abbiamo utilizzato per la proprietà Selezione multipla nella casella di riepilogo, esistono diversi modi in cui possiamo utilizzare il valore o i valori selezionati nella casella di riepilogo nel codice VBA.

Assegnazione del valore a una variabile

Possiamo usare il Dopo_aggiornamento evento della casella di riepilogo per assegnare il valore selezionato a una variabile.

Innanzitutto, creiamo una variabile a livello di modulo nella parte superiore del modulo del modulo.

Sotto le parole, Opzione esplicita, crea la seguente variabile stringa.

1 Dim strState come String.

Una volta creata questa variabile, possiamo fare doppio clic sulla casella Elenco per andare al codice dietro il modulo, oppure possiamo fare clic sul pulsante del codice nell'editor VBE.

Il Click Event della casella di riepilogo verrà creato automaticamente. Seleziona il Dopo_aggiornamento Evento dall'elenco delle Procedure disponibili.

Nell'evento After_Update, digita il codice seguente:

123 Sub privato lstState_AfterUpdate()strState = Me.lstStateFine sottotitolo

NOTA: è possibile eliminare l'evento Click poiché non è necessario.

Ora, se eseguiamo il modulo e facciamo clic sulla casella di riepilogo, il valore selezionato verrà memorizzato nella variabile. Per verificarlo, possiamo inserire un punto BREAK nel codice.

Ora, quando eseguiamo il form, se clicchiamo sulla casella di riepilogo, il codice andrà in modalità DEBUG e si fermerà al nostro punto di interruzione. Se poi premiamo F8 sulla tastiera per fare un passo avanti nel codice, la variabile verrà popolata con l'elemento selezionato nell'elenco.

Possiamo visualizzare questo valore appoggiando il mouse sulla variabile.

O

Possiamo visualizzare il valore nella finestra immediata.

Stanco di cercare esempi di codice VBA? Prova AutoMacro!

Utilizzo di un pulsante di comando per restituire il valore a Excel

Innanzitutto, creiamo un pulsante di comando sul modulo per avere un pulsante OK per restituire il valore o i valori selezionati nella casella di riepilogo a Excel.

Seleziona il controllo Pulsante di comando, quindi fai clic e trascina nel modulo per creare il pulsante.

Nella finestra Proprietà, cambia il nome del pulsante in cmdOKe modificare la didascalia e l'acceleratore del pulsante.

Lo scopo dell'acceleratore è che l'utente utilizzi la tastiera per attivare il pulsante, in questo caso Alt+O attiverebbe il pulsante.

Affinché il pulsante di comando funzioni, è necessario aggiungere del codice dietro di esso in modo che quando si fa clic sul pulsante, il codice venga eseguito. Questo è chiamato l'evento Click del pulsante.

Per accedere all'evento click, fare doppio clic sul pulsante nella visualizzazione struttura del modulo. L'evento clic verrà creato automaticamente poiché questo è l'evento più comunemente utilizzato per i pulsanti di comando.

Digitare il seguente codice nell'evento click del pulsante di comando.

123 Sotto privato cmdOK_Click()Range("E1") = strStateFine sottotitolo

Il codice prenderà la variabile che abbiamo dichiarato nell'evento After_Update del ListBox e restituirà il valore all'intervallo in Excel.

In alternativa, possiamo prelevare il valore direttamente dalla List Box senza utilizzare una variabile.

123 Sotto privato cmdOK_Click()Intervallo("E1") = me.lstStateFine sottotitolo

Quando eseguiamo il modulo, il valore selezionato verrà restituito a Excel quando facciamo clic sul pulsante OK.

Selezione di più valori

Se abbiamo impostato la proprietà di selezione multipla della casella di riepilogo su 1 o 2 che ci consente di selezionare più valori nell'elenco, il codice per selezionare questi valori è leggermente diverso.

Il Dopo_aggiornamento l'evento non viene più attivato quando si selezionano i valori nella casella di riepilogo, pertanto non è possibile utilizzare questo evento.

Possiamo ancora utilizzare l'evento click del pulsante di comando, ma dobbiamo scorrere i valori selezionati nella casella di riepilogo per restituirli a Excel.

Nell'evento Click del pulsante di comando, digitare il codice seguente.

12345678910 Sotto privato cmdOK_Click()Dim x As IntegerIntervallo("E1").SelezionaPer x = 0 A Me.lstState.ListCount - 1Se Me.lstState.Selected(x) = True AlloraActiveCell = Me.lstState.List(x)ActiveCell.Offset(1, 0).SelezionaFinisci seAvanti xFine sottotitolo

Ora, quando eseguiamo il modulo, solo i valori selezionati verranno restituiti al foglio Excel.

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

wave wave wave wave wave