Listă VBA - Element selectat

Acest articol va arăta cum să lucrați cu elementul selectat într-o casetă de listă în Excel VBA.

Casetele de listă sunt utilizate în mare parte în formularele VBA, dar pot fi utilizate și în foaia dvs. de lucru Excel. Acestea afișează o listă de opțiuni către utilizatori, una sau mai multe dintre acestea fiind selectate de utilizator.

Crearea unei casete de listă într-un formular VBA

Pentru a crea o listă într-un formular VBA, trebuie mai întâi să creăm UserForm.

După ce ați creat formularul, selectați controlul Casetă listă în caseta de instrumente și apoi trageți pentru a crea o casetă listă în formular.

Adăugarea de valori în caseta de listă

În evenimentul Initialize al formularului, tastați următorul cod. Caseta Listă va prelua valorile stocate într-o gamă de celule din foaia dvs. de lucru Excel.

123456 Private Sub UserForm_Initialize ()Dim rng As RangePentru fiecare rng din interval ("A1: A50")Me.lstState.AddItem rng.ValueUrmătorul rngSfârșitul Sub

Când rulăm formularul, caseta listă va fi afișată așa cum se arată în imaginea de mai jos:

Selectarea valorilor din caseta Listă

În mod implicit, o singură valoare poate fi selectată într-o casetă de listă într-un formular de utilizator. Cu toate acestea, acest lucru poate fi modificat prin schimbarea proprietății Multi-Select din caseta listă.

Faceți clic pe caseta de listă pentru ao selecta, apoi în fereastra Proprietăți, modificați proprietatea de selectare multiplă din 0-frmMultiSelectSingle la 1-frmMultiSelectMulti.

Acum, când rulăm formularul, putem selecta mai multe opțiuni în caseta Listă.

Dacă schimbăm opțiunea de a fi 2-frmMultiSelectExtended, înseamnă că putem selecta una dintre valori și apoi, ținând apăsată tasta SHIFT, selectați o altă valoare mai jos în listă și vor fi selectate și toate elementele dintre cele 2 valori selectate.

Programare VBA | Generatorul de coduri funcționează pentru dvs.!

Lucrul cu valorile selectate în VBA

În funcție de tipul de opțiune pe care l-am folosit pentru proprietatea Multi-Select din caseta Listă, există o serie de moduri în care putem folosi valoarea sau valorile selectate în caseta listă din Codul VBA.

Atribuirea valorii unei variabile

Putem folosi After_Update eveniment al casetei de listă pentru a atribui valoarea selectată unei variabile.

În primul rând, să creăm o variabilă la nivel de modul în partea de sus a modulului formular.

Sub cuvinte, Opțiune explicită, creați următoarea variabilă șir.

1 Dim strState ca Șir.

Odată ce am creat această variabilă, putem face dublu clic pe caseta Listă pentru a merge la codul din spatele formularului sau putem face clic pe butonul de cod din Editorul VBE.

Clicul Eveniment al casetei de listă va fi creat automat. Selectează After_Update Eveniment din lista procedurilor disponibile.

În evenimentul After_Update, tastați următorul cod:

123 Sub privat lstState_AfterUpdate ()strState = Me.lstStateSfârșitul Sub

NOTĂ: Puteți șterge evenimentul Click, deoarece nu este necesar.

Acum, dacă rulăm formularul și facem clic pe caseta de listă, valoarea selectată va fi stocată în variabilă. Pentru a testa acest lucru, putem pune un punct BREAK în cod.

Acum, când rulăm formularul, dacă facem clic pe caseta de listă, codul va intra în modul DEBUG și se va opri la punctul nostru de pauză. Dacă apăsăm apoi F8 pe tastatură pentru a muta un pas mai departe în cod, variabila va fi populată cu elementul selectat din listă.

Putem vizualiza această valoare așezând mouse-ul pe variabilă.

SAU

Putem vizualiza valoarea în fereastra imediată.

V-ați săturat să căutați exemple de cod VBA? Încercați AutoMacro!

Utilizarea unui buton de comandă pentru a restabili valoarea în Excel

În primul rând, creăm un buton de comandă pe formular pentru a avea un buton OK pentru a returna valoarea sau valorile selectate în caseta listă în Excel.

Selectați controlul butonului de comandă, apoi faceți clic și trageți în formular pentru a crea butonul.

În fereastra Proprietăți, schimbați numele butonului în cmdOKși schimbați subtitrarea și acceleratorul butonului.

Scopul Acceleratorului este ca utilizatorul să folosească tastatura pentru a activa butonul, în acest caz Alt + O ar activa butonul.

Pentru ca butonul de comandă să funcționeze, trebuie să adăugăm cod în spatele acestuia, astfel încât atunci când se face clic pe buton, codul să ruleze. Acesta se numește evenimentul Click al butonului.

Pentru a ajunge la evenimentul de clic, faceți dublu clic pe butonul din vizualizarea de proiectare a formularului. Evenimentul de clic va fi creat automat deoarece acesta este evenimentul cel mai frecvent utilizat pentru butoanele de comandă.

Tastați următorul cod în evenimentul de clic al butonului de comandă.

123 Sub privat cmdOK_Click ()Range ("E1") = strStateSfârșitul Sub

Codul va prelua variabila pe care am declarat-o în evenimentul After_Update din ListBox și va returna valoarea la Range in Excel.

Alternativ, putem prelua valoarea direct din caseta de listă fără a utiliza o variabilă.

123 Sub privat cmdOK_Click ()Range ("E1") = me.lstStateSfârșitul Sub

Când rulăm formularul, valoarea selectată va fi returnată la Excel atunci când facem clic pe butonul OK.

Selectarea mai multor valori

Dacă am setat proprietatea de selectare multiplă a casetei de listă la 1 sau 2 care ne permite să selectăm mai multe valori din listă, atunci codul pentru a selecta aceste valori este ușor diferit.

The After_Update evenimentul nu mai este declanșat la selectarea valorilor din caseta listă - de aceea nu putem folosi acest eveniment.

Putem folosi în continuare evenimentul cu clic pe butonul de comandă, dar trebuie să parcurgem valorile selectate în caseta listă pentru a le returna în Excel.

În butonul de comandă Faceți clic pe eveniment, tastați următorul cod.

12345678910 Sub privat cmdOK_Click ()Dim x Ca întregRange ("E1"). SelectațiPentru x = 0 To Me.lstState.ListCount - 1Dacă Me.lstState.Selected (x) = True ThenActiveCell = Me.lstState.List (x)ActiveCell.Offset (1, 0). SelectațiEnd IfUrmătorul xSfârșitul Sub

Acum, când rulăm formularul, numai valorile selectate vor fi returnate în foaia Excel.

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave