La selezione di più valori dalla casella di riepilogo utilizzando VBA in Microsoft Excel
In questo articolo, impareremo come creare una casella di riepilogo in cui possiamo selezionare più nomi e possiamo ottenere i dati richiesti dai dati principali.
Comprendiamo con il semplice esercizio: – Abbiamo preso i dati in cui abbiamo i dettagli dell’ID email per ogni dipendente.
Seguire i passaggi indicati di seguito per creare la casella di riepilogo che fornisce l’opzione di selezione di più scelte utilizzando il codice VBA: –
Inserimento della casella di riepilogo
Per inserire la casella di riepilogo sul foglio Excel, vai alla scheda Sviluppatore> fai clic su Inserisci> e quindi fai clic sul pulsante della casella di riepilogo sotto controllo ActiveX
Nella scheda Sviluppatore, fare clic su Modalità di progettazione per attivare il progetto, quindi fare clic su Proprietà nella scheda Sviluppatore, apparirà la finestra di dialogo Proprietà.
Seleziona la casella Elenco, quindi vai alla finestra di dialogo Proprietà. Fare clic sulla scheda Classificato. Sotto l’intestazione Varie, vai alla proprietà ListFillRange e assegna l’intervallo che contiene i valori per la casella di riepilogo.
Sotto l’intestazione Behavior, cambia la proprietà Multiselect in 1-fmMultiSelectMulti
Ora, inserisci due pulsanti di comando sul foglio Excel, vai alla scheda Sviluppatore> fai clic su Inserisci> e quindi fai clic sull’icona del pulsante sotto Controllo modulo
Fare clic con il pulsante destro del mouse e selezionare la proprietà Modifica testo e rinominare i due pulsanti in “Deseleziona nomi” e “Invia”.
Premere il tasto Alt + F11 per aprire Visual Basic Editor Aggiungi nuovo modulo e inserisci il codice seguente nel modulo.
“Coding Il codice sopra contiene due procedure GettingSelectedItems e UnselectedItems. Assegnare la procedura GettingSelectedItems to Submit button e la procedura UnselectedItems to Unselect Names button.
Dopo aver assegnato la procedura, disabilitare la modalità di progettazione facendo clic sul pulsante della modalità di progettazione nella scheda Sviluppatore.
Spiegazione logica
In questo esempio, il nostro obiettivo è recuperare l’ID email del nome selezionato dall’utente nella colonna L casella di riepilogo.
L’utente può selezionare più nomi nella casella di riepilogo. Dopo aver selezionato i nomi, l’utente premerà il pulsante di invio e l’ID e-mail corrispondente al nome selezionato nella casella di riepilogo apparirà nella colonna L del foglio Excel.
Se l’utente desidera deselezionare tutti i nomi selezionati nella casella di riepilogo, può fare clic sul pulsante “Deseleziona nomi”.
Per raggiungere l’obiettivo di cui sopra, abbiamo utilizzato la formula e la procedura Excel.
La procedura GettingSelectedItems è scritta per ottenere il nome selezionato dalla casella di riepilogo nell’intervallo da K10 a K23.
Per ottenere l’ID e-mail per il nome selezionato, abbiamo utilizzato la seguente formula di Excel: – = SE.ERRORE (CERCA.VERT (K10, $ A $ 10: $ B $ 23,2,0), “”)
Inserisci la formula sopra nella cella L10 e copia e incolla questa formula nell’intervallo da L10 a L23.
Questa formula fornirà l’ID e-mail cercando il nome selezionato nell’intervallo da A10 a B23.
Abbiamo nascosto i valori nell’intervallo da K10 a K23 utilizzando lo stesso colore per il carattere e lo sfondo della cella.
Segui sotto per il codice
Option Explicit Sub GettingSelectedItems() 'Getting selected items in ListBox1 Application.ScreenUpdating = False 'Declaring varialbes Dim ValueSelected As String, i, r As Integer 'deleting selected values Range("K10:K23").Select Selection.ClearContents 'Defining listbox1 of sheet TestDialog With Sheets("TestDialog").ListBox1 r = 0 'Using For loop for looping through all the items in List Box For i = 0 To .ListCount - 1 'Using .selected for selecting only those value which is selected by user in listbox If .Selected(i) Then 'Assigning selected value of List Box to Column K on the sheet Cells(r + 10, 11).Value = .List(i) r = r + 1 End If Next i End With Range("L10").Select End Sub Sub UnselectedItems() 'Unselecting all the items in the list box Application.ScreenUpdating = False 'Declaring varialbes Dim ValueSelected As String, i As Integer 'Defining listbox1 of sheet TestDialog With Sheets("TestDialog").ListBox1 'Using For loop for looping through all the items in List Box For i = 0 To .ListCount - 1 'Unselecting all the items in the list .Selected(i) = False Next i End With 'Deleting data from range K10 to K23 Range("K10:K23").Select Selection.ClearContents Range("L10").Select End Sub
Se ti è piaciuto questo blog, condividilo con i tuoi amici su Facebook e Facebook.
Ci piacerebbe sentire la tua opinione, facci sapere come possiamo migliorare il nostro lavoro e renderlo migliore per te. Scrivici a [email protected]