Cum se utilizează Visual Basic for Applications (VBA) pentru a modifica UserForms în Excel

Asistența pentru Office 2003 s-a încheiat

Microsoft a încheiat asistența pentru Office 2003 la data de 8 aprilie 2014. Această schimbare a afectat actualizările de software și opțiunile de securitate. Aflați ce înseamnă aceasta pentru dvs. și cum puteți rămâne protejat.

IMPORTANT: Acest articol este tradus cu ajutorul software-ului Microsoft de traducere automată și poate fi corectat prin intermediul tehnologiei Community Translation Framework (CTF). Microsoft oferă articole traduse automat, post-editate de comunitate și articole traduse de oameni, pentru a permite accesul la toate articolele din Baza noastră de cunoștințe în mai multe limbi. Articolele traduse automat și post-editate pot conține greșeli de vocabular, sintaxă și/sau gramatică. Microsoft nu este responsabil de inexactitățile, erorile sau daunele cauzate de traducerea greșită a conținutului sau de utilizarea acestuia de către clienți. Găsiți mai multe informații despre traducerea în colaborare la http://support.microsoft.com/gp/machine-translation-corrections/ro.

Faceți clic aici pentru a vizualiza versiunea în limba engleză a acestui articol: 829070
Rezumat
Acest articol descrie cum se modifică UserForms prin programare din Microsoft Excel. Include exemple și Microsoft Visual Basic pentru Applications (VBA) macrocomenzile care vă arată cum să profite de capacitățile UserForms și cum se utilizează controale ActiveX ™ care sunt disponibile pentru UserForms.

Introducere în principiile de bază ale UserForms descrie modalitatea de afișare UserForms, cum se ascunde temporar UserForms și cum să anulați UserForms. Ce sunt, de asemenea, arată cum se utilizează cele mai obișnuite evenimentele care sunt asociate cu UserForms — Inițializează evenimente, Faceți clic pe evenimente, și Terminate eveniment. Unul sau mai multe dintre următoarele exemple demonstrează cum se utilizează fiecare dintre următoarele controale ActiveX ™ într-o UserForm:
  • Etichete control
  • Casetă text control
  • CommandButton control
  • Casetă listă control
  • casetă combo control
  • Cadru control
  • OptionButton control
  • casetă de selectare control
  • ToggleButton control
  • TabStrip control
  • MultiPage control
  • Bară de defilare control
  • SpinButton control
  • RefEdit control
  • Imagine control
INTRODUCERE
Acest articol descrie cum se utilizează VBA pentru a efectua modificări în UserForms în Excel.
Informaţii suplimentare
Microsoft furnizează exemple de programare scop ilustrativ, fără nicio garanţie explicită sau implicită. Aceasta include, dar nu se limitează la, garanţiile implicite de vandabilitate sau de potrivire pentru un anumit scop. Acest articol presupune că sunteţi familiarizat cu limbajul de programare care este prezentat şi cu instrumentele utilizate pentru a crea şi a depana proceduri. Specialiștii în asistență Microsoft pot ajuta la explicarea funcționalității unei anumite proceduri, dar nu vor modifica aceste exemple pentru a furniza funcționalitate suplimentară construi proceduri pentru a răspunde cerințelor dvs. specifice.

UserForm de bază

Cum să afișăm un UserForm

Sintaxa care este utilizat pentru a afișa o UserForm prin programare este următoarea:
UserFormName. Afișare
Pentru a afișa un UserForm numit UserForm1, utilizați următorul cod:
UserForm1.Show
Aveți posibilitatea să încărcați o UserForm în memorie fără afişarea de fapt. Este posibil să dureze un UserForm complexe, mai multe secunde să apară. Deoarece pot încarcă un UserForm în memorie, aveți posibilitatea să decideți când să suporta acest globale. Pentru a încărca UserForm1 în memorie fără a se afișa, utilizați următorul cod:
Load UserForm1
Pentru a afișa UserForm, trebuie să utilizați metodaArată că s-a arătat anterior.

Cum se ascunde temporar un UserForm

Dacă doriți să ascundeți temporar un UserForm, utilizați metodaascunde . Se recomandă să ascunde un UserForm dacă aplicația implică mutarea între UserForms. Pentru a ascunde un UserForm, utilizați următorul cod:
UserForm1.Hide
Pentru informații suplimentare, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:
213747 XL2000: Cum se mută între UserForms particularizate cu butoanele de comandă

Cum se elimină o UserForm de memorie

Pentru a elimina un UserForm din memorie, utilizați instrucțiuneaUnload . Pentru a descărca un UserForm numit UserForm1, utilizați următorul cod:
Unload UserForm1
Dacă se descarcă o UserForm într-o procedură de evenimente care sunt asociate cu un UserForm sau care este asociată cu un control pe un UserForm (de exemplu, faceţi clic pe un controlCommandButton ), aveți posibilitatea să utilizați "Ma" cuvinte cheie în loc de nume de sign-in de UserForm. Pentru a utiliza "Ma" cuvinte cheie pentru a descărca o UserForm, utilizați următorul cod:
Unload Me

Cum se utilizează UserForm evenimente

UserForms suport pentru multe evenimente predefinite care puteți atașa procedurile de VBA. Când se produce evenimentul, procedura care este atașată la eveniment se execută. O singură acțiune care se efectuează de către un utilizator poate iniția mai multe evenimente. Printre cele mai frecvent utilizate de evenimente pentru un UserForm sunt inițializarea evenimentului, evenimentul Click și evenimentul întrerupeţi .

Notă Un modul Visual Basic care conține o procedură eveniment poate fi denumit un modul "spatele" UserForm. Un modul care conține proceduri eveniment nu este vizibilă în colecția de module de fereastra Explorator de proiect Microsoft Visual Basic Editor. Trebuie să faceți dublu clic pe corpul unui UserForm pentru a vizualiza modulul UserForm cod.

Cum se trap UserForm evenimente

Pentru a prinde UserForm evenimente, urmați acești pași:
  1. Creați un nou registru de lucru în Excel.
  2. În meniul Instrumente , indicați spremacrocomenziși apoi faceți clic pe BasicEditor vizuale.
  3. În meniul Inserare , faceți clic peUserForm pentru a insera o UserForm în registrul de lucru.
  4. Faceți dublu clic pe UserForm pentru a afișa fereastra theCode pentru UserForm.
  5. În modulul, introduceți codul următor:
    Private Sub UserForm_Click()    Me.Height = Int(Rnd * 500)    Me.Width = Int(Rnd * 750)End SubPrivate Sub UserForm_Initialize()    Me.Caption = "Events Events Events!"    Me.BackColor = RGB(10, 25, 100)End SubPrivate Sub UserForm_Resize()    msg = "Width: " & Me.Width & Chr(10) & "Height: " & Me.Height    MsgBox prompt:=msg, Title:="Resize Event"End SubPrivate Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)    msg = "Now Unloading " & Me.Caption    MsgBox prompt:=msg, Title:="QueryClose Event"End SubPrivate Sub UserForm_Terminate()    msg = "Now Unloading " & Me.Caption    MsgBox prompt:=msg, Title:="Terminate Event"End Sub
  6. În meniul de executare , faceți clic pe RunSub/UserForm.
Când UserForm se încarcă mai întâi, macrocomanda utilizează evenimentul inițializează se modifică proprietatea legendă UserForm "Evenimente evenimente Evenimente!" şi proprietatea de culoare fundal albastru închis.

Când faceţi clic pe UserForm, se inițiază evenimentul Click . Faceți clic pe evenimentul redimensionează UserForm. Deoarece aţi creat o procedură pentru Evenimentul redimensionați , primiți două casete de mesaj după ce faceți clic pe UserForm. Evenimentul redimensionați apare de două ori, deoarece codul din spatele evenimentul Click modifică atât proprietățile Width și Height ale UserForm.

Închiderea UserForm inițiază evenimentul QueryClose . Evenimentul QueryClose afișează o casetă de mesaj care conține legenda că ai dat UserForm în cod pentru inițializarea evenimentului. Puteţi utiliza evenimentul QueryClose Când doriți să efectuați un anumit set de acțiuni dacă utilizatorul se închide UserForm.

Evenimentul întrerupeţi apoi generează o casetă de mesaj care afirmă că legenda UserForm este UserForm1. Evenimentul întrerupeţi apare după UserForm este eliminat din memorie și legenda UserForm revine la starea sa inițială.

Cum se împiedică o UserForm fiind închis utilizând Buton Închidere

Când executați un UserForm, un buton închidere este adăugat la colțul dreapta-sus al ferestrei UserForm. Dacă doriți să împiedicați UserForm din fiind închis utilizând butonul de închidere , trebuie să trap evenimentul QueryClose .

Evenimentul QueryClose apare chiar înainte de a UserForm este descărcat de memorie. Utilizați argumentul CloseModeQueryClose evenimentului pentru a stabili cum se închide UserForm. Valoarea vbFormControlMenu pentru argumentul CloseMode indică faptul că s-a făcut clic pe butonul Close . Pentru a păstra UserForm active, setați argumentul Revocare evenimentului QueryClose la True. Pentru a utiliza evenimentul QueryClose pentru a evita o UserForm fiind închis utilizând butonul de închidere , urmați acești pași:
  1. Creați un nou registru de lucru în Excel.
  2. În meniul Instrumente , indicați spremacrocomenziși apoi faceți clic pe BasicEditor vizuale.
  3. În meniul Inserare , faceți clic peUserForm pentru a insera o UserForm în registrul de lucru.
  4. Adăugați un control CommandButton UserForm.
  5. Faceți dublu clic pe UserForm pentru a afișa fereastra theCode pentru UserForm.
  6. În fereastra de cod, introduceți codul următor:
    Private Sub CommandButton1_Click()    Unload MeEnd SubPrivate Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)    IF CloseMode = vbFormControlMenu Then        Cancel = True        Me.Caption = "Click the CommandButton to close Me!"    End IfEnd Sub
  7. În meniul de executare , faceți clic pe RunSub/UserForm.
UserForm nu este închis atunci când faceți clic pe butonul Close . Trebuie să faceți clic pe controlul CommandButton pentru a închide UserForm.

Pentru informații suplimentare, faceți clic pe următoarele numere de articol pentru a vedea articolele în baza de cunoștințe Microsoft:
207714 XL2000: Erori la momentul execuţiei utilizarea UserForms colectare
211527 XL2000: Nu trageţi UserForm control pe o foaie de lucru
211868 XL2000: Eroare execută macrocomenzi care inserează control UserForm
213582 XL2000: Probleme la utilizarea macrocomandă pentru a adăuga control UserForm
213583 XL2000: Unable to Arată UserForms în alte proiecte
213736 XL2000: Cum se determină cheia apăsat pe lângă butonul mouse-ului
213744 XL2000: Cum se ascunde temporar un UserForm
213747 XL2000: Cum se mută între UserForms particularizate cu butoanele de comandă
213749 XL2000: Cum se utilizează un UserForm pentru introducerea datelor
213768 XL2000: Cum pentru a redimensiona dinamic un formular utilizator
213774 XL2000: Cum se creează un ecran de pornire cu o UserForm

Cod VBA

Excel include 15 controale diferite care se pot utiliza pe UserForms. Această secțiune conține diferite exemple care utilizează aceste controale prin programare.

Notă Cod VBA, care este inclus în acest articol nu conține exemple care afectează toate proprietățile și evenimente pentru controale. Dacă trebuie să utilizaţi fereastra proprietăți pentru a vedea o listă de proprietăți care sunt disponibile pentru un control. Pentru a vedea o listă de proprietăți, în meniul vizualizare Proiect , faceți clic pe Proprietăți cadru fereastră.

Cum se utilizează modul de proiectare pentru editare controale

Când utilizați Visual Basic Editor de proiectare o casetă de dialog, utilizați modul de proiectare. În mod proiectare, aveți posibilitatea să editați controale și să modificați proprietățile unui control pe un UserForm în fereastra proprietăți. Pentru a afișa fereastra proprietăți, în meniulvizualizare Proiect , faceți clic pe Proprietăți cadru fereastră.

Notă Controale nu răspund la evenimentele în marcă de timp ce sunteți în modul de proiectare. Când executați o casetă de dialog care se afișează modul în care utilizatorii văd it, programul este în modul de executare. Modificările efectuate cu proprietățile unui control în modul de executare nu sunt reținute când UserForm este descărcat de memorie.

Notă Controale răspund la evenimentele în modul de executare.

Cum se referă la controlează pe un UserForm

Cum se referă controalele prin programare depinde de tipul de Visual Basic foaie de modul în care executați codul. Dacă codul se execută dintr-un modul General, sintaxa este următoarea:
UserFormName.Controlname.Property = Valoare
De exemplu, dacă doriți să setați proprietateaText de un control casetă text numit TextBox1 pe un UserForm numit UserForm1 la valoarea Bob, utilizați următorul cod:
UserForm1.TextBox1.Text = "Bob"
Dacă codul este într-o procedură de un eveniment unui control sau UserForm, nu trebuie să se referă la nume de sign-in de UserForm. În schimb, utilizați următorul cod:
TextBox1.Text = "Bob"
Atunci când atașați cod de la un obiect, codul este atașat la unul dintre evenimentele din acel obiect. În multe dintre exemplele din acest articol, atașați cod pentru EvenimentulClickCommandButton obiectului.

Etichetă de controale

Etichetă de controale sunt utilizate în principal pentru a descrie alte controale pe o UserForm. Imposibil de editat o etichetă de control de utilizator în timpul executării UserForm. Utilizați proprietatea legendă pentru a seta sau a reveni textul într-o etichetă de control. Alte proprietăţi frecvent utilizate pentru formatarea unui control eticheta includ proprietățile Font și ForeColor .

Cum se utilizează o instrucţiune cu pentru a formata o etichetă de control

Pentru a utiliza cu de respectare a confidențialității pentru a modifica proprietățile unui control de etichetă , urmați acești pași:
  1. Porniți Excel și apoi deschideți un registru de lucru nou necompletat.
  2. În meniul Instrumente , indicați spremacrocomenziși apoi faceți clic pe BasicEditor vizuale.
  3. În meniul Inserare , faceți clic peUserForm pentru a insera o UserForm în registrul de lucru.
  4. Adăugați o etichetă de control UserForm.
  5. Adăugați un control CommandButton UserForm.
  6. Faceți dublu clic pe CommandButton control toopen fereastra de cod pentru UserForm.
  7. În fereastra de cod, tastați următorul cod pentru Evenimentul CommandButton1 Click :
    Private Sub CommandButton1_Click()    With Label1        ' Set the text of the label.        .Caption = "This is Label Example 1"        ' Automatically size the label control.        .AutoSize = True        .WordWrap = False        ' Set the font used by the Label control.        .Font.Name = "Times New Roman"        .Font.Size = 14        .Font.Bold = True        ' Set the font color to blue.        .ForeColor = RGB(0, 0, 255)    End WithEnd Sub
  8. În meniul de executare , faceți clic pe RunSub/UserForm.
  9. Faceți clic pe CommandButton.
Textul "etichetă exemplu 1" apare pe eticheta controlul în bold Times New Roman cu o dimensiune de font de 14.

Controalele casetă text

Controalele casetă text sunt utilizate frecvent pentru a aduna de intrare de la un utilizator. Proprietatea Text conţine intrarea efectuate într-un control casetă text .

Cum se utilizează un control casetă text pentru a valida o parolă

Dacă ați setat proprietatea PasswordChar unui control casetă text , acesta va fi un control "editare mascate". Fiecare caracter care este tastat în caseta de text de control este înlocuit vizual de caractere specificat. Pentru a utiliza un control casetă text pentru a valida o parolă, urmați acești pași:
  1. Porniți Excel și apoi deschideți un registru de lucru nou necompletat.
  2. În meniul Instrumente , indicați spremacrocomenziși apoi faceți clic pe BasicEditor vizuale.
  3. În meniul Inserare , faceți clic peUserForm pentru a insera o UserForm în registrul de lucru.
  4. Adăugarea unui control casetă text la UserForm.
  5. În meniul vizualizare Proiect , faceți clic peProprietăți pentru a face vizibil fereastra proprietăți.
  6. În proprietatea PasswordChar a controlului casetă text , tastați *.

    Notă Se schimbă valoarea la un asterisc.
  7. Adăugați un control CommandButton UserForm.
  8. Faceți dublu clic pe CommandButton control toopen fereastra de cod pentru UserForm.
  9. În fereastra de cod, tastați următorul cod pentru Evenimentul CommandButton1 Click :
    Private Sub CommandButton1_Click()    If TextBox1.Text <> "userform" Then        MsgBox "Password is Incorrect. Please reenter."        TextBox1.Text = ""        TextBox1.SetFocus    Else        MsgBox "Welcome!"        Unload Me    End IfEnd Sub
  10. În meniul de executare , faceți clic pe RunSub/UserForm.
  11. Tastați parola Userform în caseta de text de control.
  12. Faceți clic pe controlul CommandButton.
Pentru acest exemplu, parola este "userform". Dacă tastați o parolă incorectă, veți primi o casetă de mesaj care afirmă că parola este incorectă, controlul casetă text este eliminat și apoi posibilitatea să reintroduceți parola. Când tastați o parolă corectă, primiți un mesaj de întâmpinare, și UserForm se închide.

Pentru informații suplimentare, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:
213555 XL2000: Nici o proprietate de validare a datelor pentru UserForm TextBoxes

CommandButton controale

Utilizați un control CommandButton pentru a porni o procedură VBA. Evenimentul Click pentru controlul CommandButton de obicei atașat procedura VBA. Pentru a utiliza un control CommandButton care se execută o procedură când faceți clic pe evenimentul apare, urmați acești pași:
  1. Porniți Excel și apoi deschideți un registru de lucru nou necompletat.
  2. În meniul Instrumente , indicați spremacrocomenziși apoi faceți clic pe BasicEditor vizuale.
  3. În meniul Inserare , faceți clic peUserForm pentru a insera o UserForm în registrul de lucru.
  4. Adăugați un control CommandButton UserForm.
  5. Faceți dublu clic pe CommandButton control todisplay fereastra de cod pentru UserForm.
  6. În fereastra de cod, introduceți codul următor:
    Private Sub CommandButton1_Click()    red = Int(Rnd * 255)    green = Int(Rnd * 255)    blue = Int(Rnd * 255)    CommandButton1.BackColor = RGB(red, green, blue)End Sub 
  7. În meniul de executare , faceți clic pe RunSub/UserForm.
Culoarea de fundal pentru controlul CommandButton1 schimbă mereu că se face clic.

Pentru informații suplimentare despre controlul CommandButton, faceți clic pe următoarele numere de articol pentru a vedea articolele în baza de cunoștințe Microsoft:
213572 XL2000: Făcând clic pe butonul Revocare să anulați UserForm
213743 XL2000: Cum se setează UserForm un buton de comandă implicit

Control casetă listă

Scopul controlului casetă listă este să prezinte utilizatorul cu o listă de articole pentru a selecta din. Aveți posibilitatea să stocați Listă tabel element pentru o listă de control pe o foaie de lucru Excel. Pentru a popula un control casetă listă cu un interval de celule pe o foaie de lucru, utilizaţi proprietatea Sursă rânduri . Atunci când utilizați proprietatea MultiSelect , posibilitatea să configurați o listă de control pentru a accepta selecții multiple.

Cum se obțin elementului selectat din listă de control

Utilizați proprietatea valoare unui control casetă listă pentru a returna elementul selectat. Pentru a returna elementul selectat într-un singur Selectați control casetă listă , urmați acești pași:
  1. Porniți Excel și apoi deschideți un registru de lucru nou necompletat.
  2. În celulele a1: A5 pe Foaie1, introduceți valorile că doriți alternative pentru a popula controlul casetă listă .
  3. În meniul Instrumente , indicați spremacrocomenziși apoi faceți clic pe BasicEditor vizuale.
  4. În meniul Inserare , faceți clic peUserForm pentru a insera o UserForm în registrul de lucru.
  5. Adăugarea unui control casetă listă la UserForm.
  6. Faceți dublu clic pe casetă listă control todisplay fereastra de cod pentru controlul casetă listă .
  7. În fereastra de cod, tastați următorul cod pentru Evenimentul Click Casetălistă1 :
    Private Sub ListBox1_Click()    MsgBox ListBox1.ValueEnd Sub 
  8. În meniul de executare , faceți clic pe RunSub/UserForm.
Când faceţi clic pe un element din listă, apare o casetă de mesaj cu elementul selectat.

Cum se obține elementele selectate într-un control de casetă listă Selectați mai multe

Pentru a determina elementele selectate în mai multe selectaţi control casetă listă , ciclează prin toate elementele din listă și apoi de interogare proprietatea selectat . Pentru a returna elementele selectate în mod curent în mai multe selectaţi control casetă listă , urmați acești pași:
  1. Porniți Excel și apoi deschideți un registru de lucru nou necompletat.
  2. În celulele a1: A5 pe Foaie1, introduceți valorile că doriți alternative pentru a popula controlul casetă listă .
  3. În meniul Instrumente , indicați spremacrocomenziși apoi faceți clic pe BasicEditor vizuale.
  4. În meniul Inserare , faceți clic peUserForm pentru a insera o UserForm în registrul de lucru.
  5. Adăugarea unui control casetă listă la UserForm.
  6. În meniul vizualizare Proiect , faceți clic peProprietăți pentru a vedea fereastra proprietăți.
  7. Introduceți valorile care sunt indicate pentru următoarele proprietăți de control casetă listă :
       Property	   Value   -----------     -----------------------   MultiSelect	   1 - frmMultiSelectMulti   RowSource	   Sheet1!A1:A8
  8. Adăugați un control CommandButton UserForm.
  9. Faceți dublu clic pe CommandButton control todisplay fereastra de cod pentru UserForm.
  10. În fereastra de cod, tastați următorul cod pentru Evenimentul CommandButton1 Click :
    Sub CommandButton1_Click ()       ' Loop through the items in the ListBox.       For x = 0 to ListBox1.ListCount - 1          ' If the item is selected...          If ListBox1.Selected(x) = True Then             ' display the Selected item.             MsgBox ListBox1.List(x)          End If       Next x    End Sub 
  11. În meniul de executare , faceți clic pe RunSub/UserForm.
  12. Selectați unul sau mai multe elemente din listă.
  13. Faceți clic pe CommandButton1.
După ce faceți clic pe CommandButton1, fiecare element pe care le-ați selectat în listă de control apare într-o casetă de mesaj separat. După ce toate elementele selectate apar într-o casetă de mesaj, UserForm se închide automat.

Cum se utilizează proprietatea sursă rânduri pentru a popula un control casetă listă cu celule din foaia de lucru

Pentru a utiliza proprietatea Sursă rânduri pentru a popula un control casetă listă de la un interval de celule pe o foaie de lucru, urmați acești pași:
  1. Porniți Excel și apoi deschideți un registru de lucru nou necompletat.
  2. În celulele a1: A5 pe Foaie1, introduceți valorile că doriți alternative pentru a popula controlul casetă listă .
  3. În meniul Instrumente , indicați spremacrocomenziși apoi faceți clic pe BasicEditor vizuale.
  4. În meniul Inserare , faceți clic peUserForm pentru a insera o UserForm în registrul de lucru.
  5. Adăugarea unui control casetă listă la UserForm.
  6. Adăugați un control CommandButton UserForm.
  7. Faceți dublu clic pe CommandButton control todisplay fereastra de cod pentru UserForm.
  8. În fereastra de cod, tastați următorul cod pentru Evenimentul CommandButton1 Click :
    Private Sub CommandButton1_Click()    ListBox1.RowSource = "=Sheet1!A1:A5"End Sub 
  9. În meniul de executare , faceți clic pe RunSub/UserForm.

    NotăCasetălistă1 nu conține nicio valori.
  10. Faceți clic pe CommandButton1.
Casetălistă1 este populat cu valori în celulele a1: A5 pe Foaie1.

Cum se populează un control casetă listă cu valori într-o matrice

Acest exemplu vă arată cum pentru a popula un control casetă listă cu o variabilă de matrice. Trebuie să atribuiți valorile din matrice la control casetă listă un element la un moment. De obicei, acest proces necesită să utilizați o structură de buclă, cum ar fi o pentru... Următorul buclă. Pentru a popula un control casetă listă cu o matrice variabilă, urmați acești pași:
  1. Porniți Excel și apoi deschideți un registru de lucru nou necompletat.
  2. În meniul Instrumente , indicați spremacrocomenziși apoi faceți clic pe BasicEditor vizuale.
  3. În meniul Inserare , faceți clic peUserForm pentru a insera o UserForm în registrul de lucru.
  4. Adăugarea unui control casetă listă la UserForm.
  5. În meniul Inserare , faceți clic peModule pentru a insera o foaie de modul.
  6. În fereastra de cod, introduceți codul următor:
    Sub PopulateListBox()    Dim MyArray As Variant    Dim Ctr As Integer    MyArray = Array("Apples", "Oranges", "Peaches", "Bananas", "Pineapples")        For Ctr = LBound(MyArray) To UBound(MyArray)        UserForm1.ListBox1.AddItem MyArray(Ctr)    Next        UserForm1.ShowEnd Sub 
  7. În meniul Instrumente , faceți clic peMacrocomenzile, faceți clic pe PopulateListBoxși apoi faceți clic peexecutare.
Procedura PopulateListBox se bazează pe o matrice simplă și apoi adaugă elementele din matrice la control casetă listă utilizând metoda AddItem . Apoi, se afișează UserForm.

Cum se utilizează o zonă orizontală de celule pe o foaie de lucru pentru a popula un control casetă listă

Dacă ați setat proprietatea Sursă rânduri unui control casetă listă pentru a o zonă orizontală de celule, prima valoare apare în listă de control.

Pentru a popula un control casetă listă dintr-o zonă orizontală de celule utilizând metoda AddItem , urmați acești pași:
  1. Porniți Excel și apoi deschideți un registru de lucru nou necompletat.
  2. În celulele A1:E1 pe Foaie1, introduceți valorile că doriți alternative pentru a popula controlul casetă listă .
  3. În meniul Instrumente , indicați spremacrocomenziși apoi faceți clic pe BasicEditor vizuale.
  4. În meniul Inserare , faceți clic peUserForm pentru a insera o UserForm în registrul de lucru.
  5. Adăugarea unui control casetă listă la UserForm.
  6. În meniul Inserare , faceți clic peModule pentru a insera o foaie de modul.
  7. În fereastra de cod, introduceți codul următor:
    Sub PopulateListWithHorizontalRange()    For Each x In Sheet1.Range("A1:E1")        UserForm1.ListBox1.AddItem x.Value    Next        UserForm1.ShowEnd Sub
  8. În meniul Instrumente , faceți clic peMacrocomenzile, faceți clic pePopulateListWithHorizontalRangeși apoi faceți clic peexecutare.
Procedura de macrocomandă bucle prin A1:E5 celule pe Foaie1, adăugarea valorile Casetălistă1 unul o dată.

NotăCasetălistă1 nu este legat de celule A1:E5 pe Foaie1.

Cum se revine la valori multiple de la un control casetă listă care este legat de mai multe coloane acoperire de date

Aveți posibilitatea să formatați casetă listă controale pentru a afișa mai multe coloane acoperire de date. Aceasta înseamnă că controlul casetă listă afișează mai multe elemente pe fiecare linia Către a listei. Pentru a returna mai multe valori din elementul selectat în listă, urmați acești pași:
  1. Porniți Excel și apoi deschideți un registru de lucru nou necompletat.
  2. Tastaţi următoarele date în celulele care sunt indicate onSheet1:

    A1: anB1: regiuneaC1: vânzări
    A2: 1996 B2: NordC2: 140
    A3: 1996B3: SudC3: 210
    A4: 1997B4: NordC4: 190
    A5: 1997B5: SudC5: 195
  3. În meniul Instrumente , indicați spremacrocomenziși apoi faceți clic pe BasicEditor vizuale.
  4. În meniul Inserare , faceți clic peUserForm pentru a insera o UserForm în registrul de lucru.
  5. Adăugați o etichetă de control UserForm.
  6. Adăugarea unui control casetă listă la UserForm.
  7. Faceți clic dreapta pe casetă listăși apoi faceți clic peProprietăți.
  8. Tastați sau selectați valorile care sunt indicate pentru thefollowing proprietăți de control casetă listă , așa cum sunt listate în următorul tabel:
       Property       Value   ----------------------------   BoundColumn     1   ColumnCount     3   ColumnHeads     True   RowSource       Sheet1!A2:A5
  9. Faceți dublu clic pe casetă listă control todisplay fereastra de cod pentru controlul casetă listă .
  10. În fereastra de cod, introduceți codul următor:
    Private Sub ListBox1_Change()    Dim SourceData As Range    Dim Val1 As String, Val2 As String, Val3 As String        Set SourceRange = Range(ListBox1.RowSource)        Val1 = ListBox1.Value    Val2 = SourceRange.Offset(ListBox1.ListIndex, 1).Resize(1, 1).Value    Val3 = SourceRange.Offset(ListBox1.ListIndex, 2).Resize(1, 1).Value        Label1.Caption = Val1 & " " & Val2 & " " & Val3End Sub
  11. În meniul de executare , faceți clic pe RunSub/UserForm.
Când faceţi clic pe o intrare în casetă listă de control, eticheta se modifică pentru a afișa toate cele trei dintre elementele din acea intrare.

Cum se elimină toate elementele dintr-un control casetă listă care este legat de o foaie de lucru

Pentru a elimina toate elementele dintr-un control casetă listă care este legat de o foaie de lucru, ștergeți valoarea pe care este stocat în proprietatea Sursă rânduri . Pentru a elimina elemente dintr-un control casetă listă care este legat de o foaie de lucru, urmați acești pași:
  1. Porniți Excel și apoi deschideți un registru de lucru nou necompletat.
  2. În celulele a1: A5 pe Foaie1, introduceți valorile că doriți alternative pentru a popula controlul casetă listă .
  3. În meniul Instrumente , indicați spremacrocomenziși apoi faceți clic pe BasicEditor vizuale.
  4. În meniul Inserare , faceți clic peUserForm pentru a insera o UserForm în registrul de lucru.
  5. Adăugarea unui control casetă listă la UserForm.
  6. Faceți clic dreapta pe control casetă listă și thenclick Proprietăți.
  7. În proprietatea Sursă rânduri , tastați Foaie1! A1: A5.
  8. Adăugați un control CommandButton UserForm.
  9. Faceți dublu clic pe CommandButton control todisplay fereastra de cod pentru controlul CommandButton .
  10. În fereastra de cod, tastați următorul cod pentru Evenimentul CommandButton1 Click :
    Private Sub CommandButton1_Click()    ListBox1.RowSource = ""End Sub
  11. În meniul de executare , faceți clic pe RunSub/UserForm.

    Control casetă listăcare ați adăugat UserForm este populat cu thevalues pe care ați introdus Foaie1.
  12. Faceți clic pe CommandButton1.
Toate elementele sunt eliminate din Casetălistă1.

Cum se elimină toate elementele dintr-un control casetă listă care nu este legat la o foaie de lucru

Nu există nici o singură comandă VBA care elimină toate elementele dintr-un control casetă listă dacă Listă tabel nu este legat la o foaie de lucru. Pentru a elimina toate elementele dintr-un control casetă listă care este populat dintr-o gamă de Visual Basic, urmați acești pași:
  1. Porniți Excel și apoi deschideți un registru de lucru nou necompletat.
  2. În meniul Instrumente , indicați spremacrocomenziși apoi faceți clic pe BasicEditor vizuale.
  3. În meniul Inserare , faceți clic peUserForm pentru a insera o UserForm în registrul de lucru.
  4. Adăugarea unui control casetă listă la UserForm.
  5. În meniul Inserare , faceți clic peModule pentru a insera o foaie de modul.
  6. În fereastra de cod, introduceți codul următor:
    Sub PopulateListBox()    Dim MyArray As Variant    Dim Ctr As Integer    MyArray = Array("Apples", "Oranges", "Peaches", "Bananas", "Pineapples")        For Ctr = LBound(MyArray) To UBound(MyArray)        UserForm1.ListBox1.AddItem MyArray(Ctr)    Next        UserForm1.ShowEnd Sub 
  7. Adăugați un control CommandButton UserForm.
  8. Faceți dublu clic pe CommandButton control todisplay fereastra de cod pentru controlul CommandButton .
  9. În fereastra de cod, tastați următorul cod pentru Evenimentul CommandButton1 Click :
    Private Sub CommandButton1_Click()    For i = 1 To ListBox1.ListCount        ListBox1.RemoveItem 0    Next IEnd Sub
  10. În meniul Instrumente , faceți clic peMacrocomenzile, faceți clic pe PopulateListBoxși apoi faceți clic peexecutare.

    Control casetă listă este populat, iar apoi apare UserForm.
  11. Faceți clic pe CommandButton1.
Toate elementele sunt eliminate din Casetălistă1.

Pentru informații suplimentare despre control casetă listă, faceți clic pe următoarele numere de articol pentru a vedea articolele în baza de cunoștințe Microsoft:
161598 OFF: Cum se adaugă date într-o casetă combo sau casetă listă în Excel sau Word
211446 XL2000: TextColumn proprietate afișează numai prima coloană
211896 XL2000: Cum pentru a simula combinație Editare listă de control pentru UserForms
211899 XL2000: Probleme setarea titlurile de coloană în casetă listă de control
213721 XL2000: Cum se elimină toate elementele dintr-o casetă listă sau o casetă combo
213722 XL2000: Cum se utilizează proprietatea TextColumn
213723 XL2000: Cum se revine la valori dintr-o casetă listă care afișează mai multe coloane
213746 XL2000: Cum pentru a completa control casetă listă cu mai multe intervale
213748 XL2000: Cum se populează o casetă listă bazate pe o altă casetă listă
213752 XL2000: Utilizând metoda AddItem provoacă o eroare atunci când sursă rânduri este legat acoperire de date
213756 XL2000: Folosind metoda RemoveItem cu control casetă listă sau casetă combo
213759 XL2000: Cum se determină care elemente sunt selectate într-o casetă listă

control casetă combo

Utilizați control casetă combo ca o casetă listă verticală sau o casetă combo în cazul în care puteți selecta o valoare într-o listă sau tastați o valoare nouă. Proprietatea de stil determină dacă control casetă combo acționează ca o casetă listă verticală sau o casetă combo.

Notă Toate exemplele din secțiunea anterioară pentru controlul casetă listă , de asemenea, pot fi aplicate la control casetă combo , cu excepția exemplul "Cum se obține elementele selectate în mai multe selectaţi control casetă listă".

Cum se adaugă un element nou la Listă tabel dacă control casetă combo nu este legat la o foaie de lucru

Când tastați o valoare care nu este deja în Listă tabel de control casetă combo , poate doriţi să adăugaţi valoarea nouă la Listă tabel. Pentru a adăuga valoarea nouă pe care ați tastat în controlul casetă combo dacă control casetă combo nu este legat de foaia de lucru, urmați acești pași:
  1. Porniți Excel și apoi deschideți un registru de lucru nou necompletat.
  2. În meniul Instrumente , indicați spremacrocomenziși apoi faceți clic pe BasicEditor vizuale.
  3. În meniul Inserare , faceți clic peUserForm pentru a insera o UserForm în registrul de lucru.
  4. Adăugați un control casetă combo UserForm.
  5. În meniul Inserare , faceți clic peModule pentru a insera o foaie de modul.
  6. În fereastra de cod, introduceți codul următor:
    Sub PopulateComboBox()     Dim MyArray As Variant     Dim Ctr As Integer     MyArray = Array("Apples", "Oranges", "Peaches", "Bananas", "Pineapples")         For Ctr = LBound(MyArray) To Ubound(MyArray)         UserForm1.ComboBox1.AddItem MyArray(Ctr)     Next         UserForm1.Show End Sub
  7. Adăugați un control CommandButton UserForm.
  8. Faceți dublu clic pe CommandButton control todisplay fereastra de cod pentru controlul CommandButton .
  9. În fereastra de cod, tastați următorul cod pentru Evenimentul CommandButton1 Click :
    Private Sub CommandButton1_Click()     Dim listvar As Variant          listvar = ComboBox1.List         On Error Resume Next     ' If the item is not found in the list...     If IsError(WorksheetFunction.Match(ComboBox1.Value, listvar, 0)) Then         ' add the new value to the list.         ComboBox1.AddItem ComboBox1.Value     End If End Sub
  10. În meniul Instrumente , faceți clic peMacrocomenzile, faceți clic pe PopulateListBoxși apoi faceți clic peexecutare.

    Control casetă combo este populat, iar apoi apare UserForm.
  11. Control casetă combo , tastați Mango (sau orice valoare thatis nu este deja în lista).
  12. Faceți clic pe CommandButton1.
Valoarea nouă pe care l-ați tastat acum apare la sfârșitul listei.

Cum se adaugă un element nou la Listă tabel dacă control casetă combo este legat la o foaie de lucru

Când un utilizator introduce o valoare care nu este deja în Listă tabel de control casetă combo , poate doriţi să adăugaţi valoarea nouă la Listă tabel. Pentru a adăuga valoarea nouă pe care aţi tastat în la Listă tabel de control casetă combo , urmați acești pași:
  1. Porniți Excel și apoi deschideți un registru de lucru nou necompletat.
  2. În celulele a1: A5 pe Foaie1, introduceți valorile că doriți alternative pentru a popula control casetă combo .
  3. Selectați celulele a1: A5 pe Foaie1.
  4. În meniul Inserare , indicați sprenume de sign-inși apoi faceți clic pe Define.

    În casetanume în registru de lucru , tastați ListRange , apoi faceți clic pe OK. Astfel, se creează nume definit ListRange. Utilizați nume de sign-in definit ListRange a lega proprietatea Sursă rânduri de control casetă combo în foaia de lucru.
  5. În meniul Instrumente , indicați spremacrocomenziși apoi faceți clic pe BasicEditor vizuale.
  6. În meniul Inserare , faceți clic peUserForm pentru a insera o UserForm în registrul de lucru.
  7. Adăugați un control casetă combo UserForm.
  8. În proprietățile pentru ComboBox1, tastați Foaie1! ListRange ca proprietateaSursă rânduri .
  9. Adăugați un control CommandButton UserForm.
  10. Faceți dublu clic pe CommandButton control todisplay fereastra de cod pentru controlul CommandButton .
  11. În fereastra de cod, tastați următorul cod pentru Evenimentul CommandButton1 Click :
    Private Sub CommandButton1_Click()    Dim SourceData As Range    Dim found As Object        Set SourceData = Range("ListRange")    Set found = Nothing    ' Try to find the value on the worksheet.    Set found = SourceData.Find(ComboBox1.Value)        ' If the item is not found in the list...    If found Is Nothing Then        ' redefine ListRange.        SourceData.Resize(SourceData.Rows.Count + 1, 1).Name = "ListRange"        ' Add the new item to the end of the list on the worksheet.        SourceData.Offset(SourceData.Rows.Count, 0).Resize(1, 1).Value _         = ComboBox1.Value        ' Reset the list displayed in the ComboBox.        ComboBox1.RowSource = Range("listrange").Address(external:=True)    End IfEnd Sub
  12. În meniul de executare , faceți clic pe RunSub/UserForm.

    UserForm apare Foaie1.
  13. Control casetă combo , tastați o valoare care nu este deja în listă.
  14. Faceți clic pe CommandButton1.
Element nou pe care ați tastat în controlul casetă combo este adăugat la Listă tabel și Listă tabel de control casetă combo este legat de este extinsă pentru a include celule A1:A6.

Cum se afișează Listă tabel de un control casetă combo atunci când apare UserForm

Uneori, poate fi util pentru a afișa Listă tabel de un control casetă combo atunci când un UserForm apare mai întâi. Următorul exemplu utilizează evenimentul Activate de UserForm. Pentru a afișa Listă tabel de un control casetă combo , urmați acești pași:
  1. Porniți Excel și apoi deschideți un registru de lucru nou necompletat.
  2. În celulele a1: A5 pe Foaie1, introduceți valorile că doriți alternative pentru a popula control casetă combo .
  3. În meniul Instrumente , indicați spremacrocomenziși apoi faceți clic pe BasicEditor vizuale.
  4. În meniul Inserare , faceți clic peUserForm pentru a insera o UserForm în registrul de lucru.
  5. Adăugați un control casetă combo UserForm.
  6. În proprietățile pentru ComboBox1, tastați Foaie1! A1: A5 ca proprietateaSursă rânduri .
  7. Faceți dublu clic pe UserForm pentru a afișa fereastra theCode pentru UserForm.
  8. În fereastra de cod, tastați următorul cod pentru Evenimentul CommandButton Click :
    Private Sub UserForm_Activate()           ComboBox1.DropDown       End Sub
  9. În meniul de executare , faceți clic pe RunSub/UserForm.
UserForm apare pe Foaie1 și puteți vedea Listă tabel pentru ComboBox1.

Cum se afișează Listă tabel de un control casetă combo atunci când efectuați o selecție în alt control casetă combo

Pentru a afișa automat Listă tabel de un control casetă combo atunci când o alegere este făcută în alt control casetă combo , urmați acești pași:
  1. Porniți Excel și apoi deschideți un registru de lucru nou necompletat.
  2. În celulele a1: A10 pe Foaie1, introduceți valorile că doriți alternative pentru a popula control casetă combo .
  3. În meniul Instrumente , indicați spremacrocomenziși apoi faceți clic pe BasicEditor vizuale.
  4. În meniul Inserare , faceți clic peModule.
  5. În fereastra de cod pentru modulul, introduceți codul următor:
    Sub DropDown_ComboBox()    UserForm1.ComboBox2.DropDownEnd Sub
  6. În meniul Inserare , faceți clic peUserForm pentru a insera o UserForm în registrul de lucru.
  7. Adăugați un control casetă combo UserForm.
  8. În proprietățile pentru ComboBox1, tastați Foaie1! A1: A5 ca proprietateaSursă rânduri .
  9. Faceți dublu clic pe controlul casetă combo deschidere fereastra codul de control casetă combo .
  10. În fereastra de cod pentru controlul casetă combo , tastați următorul cod pentru Evenimentul Click casetă combo :
    Private Sub ComboBox1_Click()    Application.OnTime Now, "DropDown_ComboBox"End Sub
  11. Adăugați un al doilea control casetă combo UserForm.
  12. În proprietățile pentru ComboBox2, tastați Foaie1! A6:A10 ca proprietateaSursă rânduri .
  13. În meniul de executare , faceți clic pe RunSub/UserForm.
Când faceţi clic pe un element din Listă tabel ComboBox1 , Listă tabel pentru ComboBox2 apare automat.

Pentru informații suplimentare despre control casetă combo, faceți clic pe următoarele numere de articol pentru a vedea articolele în baza de cunoștințe Microsoft:
161598 OFF: Cum se adaugă date într-o casetă combo sau casetă listă în Excel sau Word
211446 XL2000: TextColumn proprietate afișează numai prima coloană
211899 XL2000: Probleme setarea titlurile de coloană în casetă listă de control
213717 XL2000: Run-time error utilizând metoda verticală cu o casetă combo
213718 XL2000: Cum se afișează o listă de casetă combo atunci când o UserForm este afișat
213721 XL2000: Cum se elimină toate elementele dintr-o casetă listă sau o casetă combo
213722 XL2000: Cum se utilizează proprietatea TextColumn
213752 XL2000: Utilizând metoda AddItem provoacă o eroare atunci când datele sursă rânduri este legat
213756 XL2000: Folosind metoda RemoveItem cu control casetă listă sau casetă combo

Cadru de control

Utilizați un cadru de control pentru a Grupa logic asociate elemente într-o UserForm. Cadru controale sunt utilizate frecvent pentru OptionButton controalele de grup.

Cum se ciclează prin toate controalele de pe un cadru de control

Pentru a utiliza un pentru fiecare... Următorul buclă pentru a accesa toate controalele într-un cadru de control, urmați acești pași:
  1. Porniți Excel și apoi deschideți un registru de lucru nou necompletat.
  2. În meniul Instrumente , indicați spremacrocomenziși apoi faceți clic pe BasicEditor vizuale.
  3. În meniul Inserare , faceți clic peUserForm pentru a insera o UserForm în registrul de lucru.
  4. Adăugați un cadru de control la UserForm.
  5. Adăugați un control OptionButton la controlul cadru .

    Repetați acest pas pentru a adăuga două mai multe controale OptionButton în cadru de control.
  6. Faceți dublu clic pe controlul cadru pentru a deschide fereastra theCode pentru controlul cadru .
  7. În fereastra de cod, tastați următorul cod pentru Evenimentul Frame Click :
    Private Sub Frame1_Click()    Dim Ctrl As Control        For Each Ctrl In Frame1.Controls        Ctrl.Enabled = Not Ctrl.Enabled    NextEnd Sub
  8. În meniul de executare , faceți clic pe RunSub/UserForm.
  9. În UserForm, faceți clic pe controlul cadru.
Prima dată când faceți clic pe controlul cadru , toate controalele în cadru de control nu sunt disponibile. Dacă faceți clic pe controlul cadru din nou, controalele sunt disponibile din nou.

OptionButton control

Utilizați grupurile de OptionButton controale pentru a face o selecție între un grup de opțiuni. Se poate utiliza oricare dintre următoarele tehnici pentru grup OptionButton controale:
  • Cadru de control
  • ProprietățiGroupName
Notă Valoarea de ON , Da valoarea şi valoarea reală indică faptul că un OptionButton este selectat. Valoarea Off , valoarea No și valoarea fals indică faptul că un OptionButton nu este selectată.

Cum se determină controlul OptionButton care este selectat când controalele OptionButton sunt un cadru de control

Atunci când grup OptionButtons controale utilizând un cadru de control, aveți posibilitatea să determinați controlul OptionButton care este selectat de buclă prin toate controalele în cadru de control și de verificare valoare proprietate a fiecărui control. Pentru a determina controlul OptionButton care este selectată, urmați acești pași:
  1. Porniți Excel și apoi deschideți un registru de lucru nou necompletat.
  2. În meniul Instrumente , indicați spremacrocomenziși apoi faceți clic pe BasicEditor vizuale.
  3. În meniul Inserare , faceți clic peUserForm pentru a insera o UserForm în registrul de lucru.
  4. Adăugați un cadru de control la UserForm.
  5. Adăugați un control OptionButton la controlul cadru .

    Repetați acest pas pentru a adăuga două mai multe controale OptionButton în cadru de control.
  6. Adăugați un control CommandButton UserForm în afara cadru de control.
  7. Faceți dublu clic pe CommandButton control todisplay fereastra de cod pentru UserForm.
  8. În fereastra de cod, tastați următorul cod pentru Evenimentul CommandButton1 Click :
    Private Sub CommandButton1_Click()     For Each x In Frame1.Controls         If x.Value = True Then             MsgBox x.Caption         End If     Next End Sub
  9. În meniul de executare , faceți clic pe RunSub/UserForm.
  10. În UserForm, un control OptionButton , și apoi faceți clic peCommandButton1.
Apare o casetă de mesaj care conține legendă controlul OptionButton selectată în mod curent.

Cum se determină controlul OptionButton care este selectat

Scopul următorul exemplu este de a determina controlul OptionButton care este selectat în Grup1. Pentru a crea un UserForm care are două grupuri de controale OptionButton , urmați acești pași:
  1. Porniți Excel și apoi deschideți un registru de lucru nou necompletat.
  2. În meniul Instrumente , indicați spremacrocomenziși apoi faceți clic pe BasicEditor vizuale.
  3. În meniul Inserare , faceți clic peUserForm pentru a insera o UserForm în registrul de lucru.
  4. Adăugați un cadru de control la UserForm.
  5. Adăugați un control OptionButton în cadru de control.

    Repetați acest pas pentru a adăuga două mai multe controale OptionButton în cadru de control.
  6. Pentru fiecare control OptionButton , tastați Grup1 în proprietatea Numegrup .
  7. Repetați pașii 4 și 5 pentru a crea un al doilea cadru control care conține trei OptionButton controale.
  8. Pentru fiecare control OptionButton în al doilea cadru de control, tastați Grup2 în proprietatea Numegrup .
  9. Adăugați un control CommandButton UserForm în afara controalele de cadru .
  10. Faceți dublu clic pe CommandButton control todisplay fereastra de cod pentru UserForm.
  11. În fereastra de cod, tastați următorul cod pentru Evenimentul CommandButton1 Click :
    Private Sub CommandButton1_Click()     Dim x As Control          ' Loop through ALL the controls on the UserForm.     For Each x In Me.Controls         ' Check to see if "Option" is in the Name of each control.         If InStr(x.Name, "Option") Then             ' Check Group name.             If x.GroupName = "Group1" Then                 ' Check the status of the OptionButton.                 If x.Value = True Then                     MsgBox x.Caption                     Exit For                 End If             End If         End If     Next End Sub
  12. În meniul de executare , faceți clic pe RunSub/UserForm.
  13. În UserForm, un control OptionButton în Grup1, și apoi faceți clic peCommandButton1.
Apare o casetă de mesaj care conține legendă a controlului OptionButton care este selectată în mod curent.

Pentru informații suplimentare despre OptionButton controale, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:
213724 XL2000: Probleme la utilizarea TripleState proprietate pentru butonul de opţiune

casetă de selectare control

Utilizați un control casetă de selectare pentru a indica o valoare true sau false. Un control de selectare care apare cu un marcaj de selectare de selectare în ea indică o valoare de adevărat. O casetă de selectare care apare cu nici un marcaj de selectare de selectare indică o valoare de fals. Dacă valoarea proprietății TripleState este adevărată, un control de selectare , de asemenea, poate avea o valoare nulă. Un control de selectare care are o valoare nulă pare să fie indisponibilă.

NotăPe valoare, valoarea Da și valoarea True indică faptul că un control casetă de selectare este bifată. Valoarea Off , valoarea No și valoarea fals indică faptul că un control casetă de selectare este debifată.

Cum se verifică valoarea unui control casetă de selectare

Pentru a utiliza proprietatea valoare pentru a returna valoarea curentă a unui control casetă de selectare , urmați acești pași:
  1. Porniți Excel și apoi deschideți un registru de lucru nou necompletat.
  2. În meniul Instrumente , indicați spremacrocomenziși apoi faceți clic pe BasicEditor vizuale.
  3. În meniul Inserare , faceți clic peUserForm pentru a insera o UserForm în registrul de lucru.
  4. Adăugați un control de selectare UserForm.
  5. În Listă tabel de proprietăţi casetă de selectare 1, selectați Adevărate ca proprietatea TripleState .
  6. Faceți dublu clic pe casetă de selectare control todisplay fereastra de cod pentru controlul casetă de selectare .
  7. În fereastra de cod, introduceți codul următor pentru Evenimentul Schimbare casetă de selectare 1 :
    Private Sub CheckBox1_Change()    Select Case CheckBox1.Value        Case True            CheckBox1.Caption = "True"        Case False            CheckBox1.Caption = "False"        Case Else            CheckBox1.Caption = "Null"    End SelectEnd Sub
  8. În meniul de executare , faceți clic pe RunSub/UserForm.
Când faceţi clic pe controlul casetă de selectare , legenda modificările control casetă de selectare pentru a reflecta valoarea curentă.

ToggleButton control

Un control ToggleButton are același aspect ca un control CommandButton până când se face clic. Când faceţi clic pe un control ToggleButton , pare să fi apăsat sau apăsat în jos. Valoare proprietate unui control ToggleButton este adevărată atunci când este selectat butonul și fals când nu se selecteze butonul. Dacă valoarea proprietății TripleState este adevărată, un control ToggleButton poate avea o valoare nulă. Un control ToggleButton care are o valoare nulă pare să fie indisponibilă.

NotăPe valoare, valoarea Da și valoarea True indică faptul că este selectat un control ToggleButton . Valoarea Off , valoarea No și valoarea fals indică faptul că un control ToggleButton nu este selectată.

Cum se obține valoarea unui control ToggleButton

Pentru a obține valoarea unui control ToggleButton , urmați acești pași:
  1. Porniți Excel și apoi deschideți un registru de lucru nou necompletat.
  2. În meniul Instrumente , indicați spremacrocomenziși apoi faceți clic pe BasicEditor vizuale.
  3. În meniul Inserare , faceți clic peUserForm pentru a insera o UserForm în registrul de lucru.
  4. Adăugați un control ToggleButton UserForm.
  5. Adăugați o etichetă de control UserForm.
  6. Faceți dublu clic pe ToggleButton control toopen fereastra de cod pentru controlul ToggleButton .
  7. În fereastra de cod, introduceți codul următor pentru Evenimentul ToggleButton1Click :
    Private Sub ToggleButton1_Click()    If ToggleButton1.Value = True Then        ' Set UserForm background to Red.        Me.BackColor = RGB(255, 0, 0)    Else        ' Set UserForm background to Blue.        Me.BackColor = RGB(0, 0, 255)    End IfEnd Sub
  8. În meniul de executare , faceți clic pe RunSub/UserForm.
Când faceţi clic pe controlul ToggleButton , culoarea de fundal a UserForm modificările.

Cum se creează un grup de exclud ToggleButton controale

Acest exemplu utilizează evenimentul MouseUp pentru a seta o variabilă și apelează ExclusiveToggleButtons procedura. Procedura ExclusiveToggleButtons determină controlul ToggleButton care este selectată, apoi se revocă alte persoane. Pentru a crea un grup de controale ToggleButton exclud, urmați acești pași:
  1. Porniți Excel și apoi deschideți un registru de lucru nou necompletat.
  2. În meniul Instrumente , indicați spremacrocomenziși apoi faceți clic pe BasicEditor vizuale.
  3. În meniul Inserare , faceți clic peModule.
  4. În fereastra de cod pentru modulul, introduceți codul următor:
    ' Variable that holds the name of the ToggleButton that was clicked.Public clicked As StringSub ExclusiveToggleButtons()   Dim toggle As Control   ' Loop through all the ToggleButtons on Frame1.   For Each toggle In UserForm1.Frame1.Controls       ' If Name of ToggleButton matches name of ToggleButton       ' that was clicked...       If toggle.Name = clicked Then          '...select the button.          toggle.Value = True       Else          '...otherwise clear the selection of the button.          toggle.Value = False       End If    NextEnd Sub
  5. În meniul Inserare , faceți clic peUserForm pentru a insera o UserForm în registrul de lucru.
  6. Adăugați un cadru de control la UserForm.
  7. Adăugarea unui control ToggleButton în cadru de control.

    Repetați acest pas pentru a adăuga două mai multe controale ToggleButton în cadru de control.
  8. Faceți dublu clic pe controlul cadru cadru fereastră de cod displaythe pentru UserForm.
  9. În fereastra de cod pentru modulul, tastați următoarele codefor ToggleButton MouseUp eveniment:
    Private Sub ToggleButton1_MouseUp(ByVal Button As Integer, _              ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)       clicked = ToggleButton1.Name       Application.OnTime Now, "ExclusiveToggleButtons"    End Sub    Private Sub ToggleButton2_MouseUp(ByVal Button As Integer, _              ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)        clicked = ToggleButton2.Name        Application.OnTime Now, "ExclusiveToggleButtons"    End Sub    Private Sub ToggleButton3_MouseUp(ByVal Button As Integer, _              ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)        clicked = ToggleButton3.Name        Application.OnTime Now, "ExclusiveToggleButtons"    End Sub
  10. În meniul de executare , faceți clic pe RunSub/UserForm.
Când faceţi clic pe un control ToggleButton , controlul ToggleButton selectat anterior este revocată.

TabStrip control

Utilizați un control TabStrip pentru a vizualiza diferite seturi de informații pentru un set de controale.

Cum se controlează un control TabStrip programatic

Pentru a modifica proprietatea de culoare fundal de un control imagine bazate pe fila care este selectată, urmați acești pași:
  1. Porniți Excel și apoi deschideți un registru de lucru nou necompletat.
  2. În meniul Instrumente , indicați spremacrocomenziși apoi faceți clic pe Visual Basic Editor.
  3. În meniul Inserare , faceți clic peUserForm pentru a insera o UserForm în registrul de lucru.
  4. Adăugați un control TabStrip UserForm.
  5. Adăugați un control imagine care se referă la baza de TabStrip control, dar care nu include file.
  6. În panoul de proprietăți pentru Image1, tastați& H000000FF & în proprietatea de culoare fundal .
  7. Faceți dublu clic pe controlul TabStrip deschidere fereastra de cod pentru controlul TabStrip .
  8. În fereastra de cod, introduceți codul următor pentru Evenimentul TabStrip1 modificare :
    Private Sub TabStrip1_Change()    Dim i As Integer    i = TabStrip1.SelectedItem.Index    Select Case i        Case 0            ' If Tab1 is selected, change the color of Image control to Red.            Image1.BackColor = RGB(255, 0, 0)        Case 1            ' If Tab2 is selected, change the color of Image control to Green.            Image1.BackColor = RGB(0, 255, 0)    End SelectEnd Sub
  9. În meniul de executare , faceți clic pe RunSub/UserForm.
Culoarea imaginii control modificările în funcție de pagină în controlul TabStrip care este activ.

Pentru informații suplimentare despre TabStrip de control, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:
213254 XL2000: Cum se utilizează controlul TabStrip pe un UserForm

Control cu mai multe pagini

Utilizați un control MultiPage să funcționeze cu o mulțime de informații care pot fi sortate în mai multe categorii. Un control MultiPage este compus din unul sau mai multe pagini obiecte care fiecare conține un alt set de controale. Puteți seta pagina active prin programare setând proprietatea valoare pentru controlul MultiPage .

Cum se controlează prin programare un control cu mai multe pagini

Pentru a adăuga un control MultiPage și utilizând o macrocomandă de control, urmați acești pași:
  1. Porniți Excel și apoi deschideți un registru de lucru nou necompletat.
  2. În meniul Instrumente , indicați spremacrocomenziși apoi faceți clic pe BasicEditor vizuale.
  3. În meniul Inserare , faceți clic peUserForm pentru a insera o UserForm în registrul de lucru.
  4. Adăugați un control MultiPage UserForm.
  5. Adăugați o etichetă de control la Pagina1 MultiPage control.
  6. Adăugați un control casetă text la Pagina1 MultiPage control.
  7. Control MultiPage , faceți clic pe pagina2și apoi Repetați pașii 5and 6 pentru a adăuga o etichetă de control și un control casetă text .
  8. Faceți dublu clic pe controlul MultiPage deschidere fereastra de cod pentru controlul MultiPage .
  9. În fereastra de cod, introduceți codul următor pentru Evenimentul MultiPage1 modificare :
    Private Sub MultiPage1_Change()    Select Case MultiPage1.Value        ' If activating Page1...        Case 0            Label1.Caption = TextBox2.Text            TextBox1.Text = ""        ' If activating Page2...        Case 1            Label2.Caption = TextBox1.Text            TextBox2.Text = ""    End SelectEnd Sub
  10. În fereastra de cod, introduceți codul următor pentru UserForm Initialize eveniment:
    Private Sub UserForm_Initialize()    ' Force Page1 to be active when UserForm is displayed.    MultiPage1.Value = 0    Label1.Caption = ""End Sub
  11. În meniul de executare , faceți clic pe RunSub/UserForm.

    În caseta de text de control pe Pagina1, tastați Test. Când este debifată youclick fila pagina2 , TextBox2 și legenda Label2 modificări la intrare pe care le-ați efectuat în TextBox1 pe Pagina1 ("Test").

Cum se creează o interfață expert utilizând un control cu mai multe pagini

Atunci când o activitate necesită mai mulți pași incrementală, o interfață expert poate fi foarte eficient. Controlul MultiPage utilizați pentru a crea o interfață expert în loc să utilizați mai multe UserForms. Acest exemplu manipuleaza un control MultiPage care are trei pagini. O procedură care este atașată la inițializarea eveniment de UserForm dezactivează pagina2 și pagina3 și impune Pagina1 controlul MultiPage să fie activă.

Notă Când indexați paginile unui control MultiPage utilizând colectarea pagini , prima pagină din colecția este pagina zero. Această procedură, de asemenea, setează legenda controalelor CommandButton și dezactivează <> butonul.

Notă Procedura care este atribuită evenimentul Click de CommandButton1 controlează funcționalitatea <> butonul. Procedura care este atribuită evenimentul Click de CommandButton2 controlează funcționalitatea Next > butonul. Pentru a crea o interfață expert utilizând un control MultiPage , urmați acești pași:
  1. Porniți Excel și apoi deschideți un registru de lucru nou necompletat.
  2. În meniul Instrumente , indicați spremacrocomenziși apoi faceți clic pe BasicEditor vizuale.
  3. În meniul Inserare , faceți clic peUserForm pentru a insera o UserForm în registrul de lucru.
  4. Adăugați un control MultiPage UserForm.
  5. Faceți clic dreapta pe fila Pagina1 și apoi faceți clic pePagină nouă pentru a adăuga pagina3 la controlul MultiPage .
  6. Adăugați un control CommandButton UserForm care nu este controlul MultiPage .

    Repetați acest pas pentru a adăuga un al doilea control CommandButton UserForm.
  7. Faceți dublu clic pe UserForm pentru a deschide Codewindow pentru UserForm.
  8. În fereastra de cod, introduceți codul următor pentru UserForm Initialize eveniment:
    Private Sub UserForm_Initialize()    With MultiPage1        ' The next 2 lines disable Page2 & Page3.        .Pages(1).Enabled = False        .Pages(2).Enabled = False        ' Make Page1 the active page.        .Value = 0    End With        ' Set the caption on the CommandButtons.    CommandButton1.Caption = "<Back"    CommandButton1.Enabled = False    CommandButton2.Caption = "Next>"End Sub' Procedure for the "<Back" buttonPrivate Sub CommandButton1_Click()    Select Case MultiPage1.Value        Case 1                                 ' If Page2 is active...            With MultiPage1                .Pages(0).Enabled = True       ' Enable Page1.                .Value = MultiPage1.Value - 1  ' Move back 1 page.                .Pages(1).Enabled = False      ' Disable Page2.            End With            CommandButton1.Enabled = False     ' Disable Back button.                    Case 2                                 ' If Page3 is active...            With MultiPage1                .Pages(1).Enabled = True       ' Enable Page2.                .Value = MultiPage1.Value - 1  ' Move back 1 page.                .Pages(2).Enabled = False      ' Disable Page3.   CommandButton2.Caption = "Next>"            End With    End SelectEnd Sub' Procedure for the "Next>" buttonPrivate Sub CommandButton2_Click()    Select Case MultiPage1.Value        Case 0                                  ' If Page1 is active...            With MultiPage1                .Value = MultiPage1.Value + 1   ' Move forward 1 page.                .Pages(1).Enabled = True        ' Enable Page2.                .Pages(0).Enabled = False       ' Disable Page1.            End With            CommandButton1.Enabled = True       ' Enable Back button.                    Case 1                                  ' If Page2 is active...            With MultiPage1                .Value = MultiPage1.Value + 1   ' Move forward 1 page.                .Pages(2).Enabled = True        ' Enable Page3.                .Pages(1).Enabled = False       ' Disable Page2.            End With            CommandButton2.Caption = "Finish"   ' Change Next button to Finish.                    Case 2                                  ' If Page3 is active...            MsgBox "Finished!"                  ' User is Finished.            Unload Me                           ' Unload the UserForm.    End SelectEnd Sub
  9. În meniul de executare , faceți clic pe RunSub/UserForm.
Când faceți clic Next >, pagina2 este activat și <> devine disponibil. Când faceți clic Next > a doua oară, pagina3 este activat și legendă pentru CommandButton2 modificări la "Finish".

Bară de defilare control

Se poate utiliza un control bară de defilare Când doriți să modificați valoarea afișată de către un alt control, cum ar fi o etichetă de control.

Cum se modifică o etichetă de control care se bazează pe valoarea unui control bară de defilare

Pentru a modifica setarea proprietății valoarea unui control bară de defilare proprietatea legendă o etichetă de control, urmați acești pași:
  1. Porniți Excel și apoi deschideți un registru de lucru nou necompletat.
  2. În meniul Instrumente , indicați spremacrocomenziși apoi faceți clic pe BasicEditor vizuale.
  3. În meniul Inserare , faceți clic peUserForm pentru a insera o UserForm în registrul de lucru.
  4. Adăugați o bară de defilare control UserForm.
  5. Adăugați o etichetă de control UserForm.
  6. Faceți dublu clic pe controlul de bară de defilare pentru deschidere fereastra de cod pentru controlul bară de defilare .
  7. În fereastra de cod, introduceți codul următor pentru Evenimentul ScrollBar1 modificare :
    Private Sub ScrollBar1_Change()    Label1.Caption = ScrollBar1.ValueEnd Sub
  8. În meniul de executare , faceți clic pe RunSub/UserForm.
Atunci când defilați prin utilizarea controlului de bară de defilare , Label1 este actualizat cu valoarea curentă a controlului de bară de defilare .

SpinButton control

Un control SpinButton , cum ar fi un control bară de defilare , se utilizează frecvent incrementa sau decrement valoarea alt control, cum ar fi o etichetă de control. Proprietatea SmallChange determină cât de mult valoarea unui control SpinButton se modifică atunci când se face clic pe.

Cum se adaugă un control SpinButton care poate incrementa sau scade cu o unitate o dată pe care este stocat într-un control casetă text

Pentru a adăuga un control SpinButton care poate incrementa sau scade cu o unitate o dată pe care este stocat într-un control casetă text , urmați acești pași:
  1. Porniți Excel și apoi deschideți un registru de lucru nou necompletat.
  2. În meniul Instrumente , indicați spremacrocomenziși apoi faceți clic pe BasicEditor vizuale.
  3. În meniul Inserare , faceți clic peUserForm pentru a insera o UserForm în registrul de lucru.
  4. Adăugați un control SpinButton UserForm.
  5. Adăugarea unui control casetă text la UserForm.
  6. Faceți dublu clic pe SpinButton control toopen fereastra de cod pentru controlul SpinButton .
  7. În fereastra de cod, introduceți codul următor pentru Evenimentul SpinButton1 SpinUp :
    Private Sub SpinButton1_SpinUp()    TextBox1.Text = DateValue(TextBox1.Text) + 1End Sub
  8. În fereastra de cod, introduceți codul următor pentru Evenimentul SpinButton1 oprire :
    Private Sub SpinButton1_SpinDown()    TextBox1.Text = DateValue(TextBox1.Text) - 1End Sub
  9. În fereastra de cod, introduceți codul următor pentru UserForm Initialize eveniment:
    Private Sub UserForm_Initialize()    TextBox1.Text = DateEnd Sub
  10. În meniul de executare , faceți clic pe RunSub/UserForm.
Când apare UserForm, data curentă apare în TextBox1. Când faceți clic pe controlul SpinButton , data este incrementare sau scăzută de o zi.

În acest exemplu, dacă modificaţi proprietatea SmallChangeSpinButton1, care nu afectează numărul de zile de la intrarea în TextBox1 s-a modificat de când faceţi clic pe SpinButton1. Numărul de zile este determinată numai de procedura care este atașat la evenimentul SpinUp și evenimente de Oprire a SpinButton1.

Pentru informații suplimentare despre SpinButton de control, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:
213224 XL2000: Visual Basic exemplu pentru utilizarea unui buton incrementare / decrementare cu o dată

RefEdit control

Controlul RefEdit imită comportamentul casetele de referință care sunt încorporate în Excel. Utilizați proprietatea valoare pentru a obține adresa curentă de celule, care sunt stocate într-un control RefEdit .

Cum se populează o zonă de celule pe baza zonei selectate utilizând controlul RefEdit

Pentru a utiliza RefEdit de control pentru a popula celule, urmați acești pași:
  1. Porniți Excel și apoi deschideți un registru de lucru nou necompletat.
  2. În meniul Instrumente , indicați spremacrocomenziși apoi faceți clic pe BasicEditor vizuale.
  3. În meniul Inserare , faceți clic peUserForm pentru a insera o UserForm în registrul de lucru.
  4. Adăugați un control RefEdit UserForm.
  5. Adăugați un control CommandButton UserForm.
  6. Faceți dublu clic pe CommandButton control toopen fereastra de cod pentru controlul CommandButton .
  7. În fereastra de cod, tastați următorul cod pentru Evenimentul CommandButton1 Click :
    Private Sub CommandButton1_Click()    Dim MyRange As String    MyRange = RefEdit1.Value    Range(MyRange).Value = "test"    Unload MeEnd Sub
  8. În meniul de executare , faceți clic pe RunSub/UserForm.

    UserFormappears.
  9. Faceți clic pe butonul în controlul RefEdit .

    Observaţi că restrângerea UserForm.
  10. Selectați o zonă de celule, cum ar fi a1: A5, și apoi faceți clic pe thebutton în RefEdit de control pentru a extinde UserForm.
  11. Faceți clic pe CommandButton1.
UserForm se închide și celulele selectate acum conţine cuvântul "test".

Pentru informații suplimentare despre RefEdit de control, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:
213776 XL2000: Cum se utilizează controlul RefEdit cu o UserForm

Control imagine

Scopul controlului de imagine este pentru a afișa o imagine pe un UserForm. Pentru a atribui o fotografie la un control de imagine de la momentul execuției, utilizați funcția LoadPicture .

Cum să încărcați o imagine într-un control de imagine

Pentru a insera un control imagine care vă solicită să selectați o imagine pentru a se încarcă atunci când faceți clic pe controlul de imagine , urmați acești pași:
  1. Porniți Excel și apoi deschideți un registru de lucru nou necompletat.
  2. În meniul Instrumente , indicați spremacrocomenziși apoi faceți clic pe BasicEditor vizuale.
  3. În meniul Inserare , faceți clic peUserForm pentru a insera o UserForm în registrul de lucru.
  4. Adăugați un control imagine pe UserForm.
  5. Faceți dublu clic pe controlul de imagine pentru a deschide fereastra theCode pentru controlul imagine .
  6. În fereastra de cod, tastați următorul cod pentru Evenimentul Image1 Click :
    Private Sub Image1_Click()    Dim fname As String        ' Display the Open dialog box.    fname = Application.GetOpenFilename(filefilter:= _            "Bitmap Files(*.bmp),*.bmp", Title:="Select Image To Open")        ' If you did not click Cancel...    If fname <> "False" Then        ' Load the bitmap into the Image control.        Image1.Picture = LoadPicture(fname)        ' Refresh the UserForm.        Me.Repaint    End IfEnd Sub
  7. În meniul de executare , faceți clic pe RunSub/UserForm.

    UserForm apare.
  8. Faceți clic pe controlul de imagine .

    Persoana, faceți clic pe controlul de imagine , Selectați imaginea la deschidere boxappears de dialog, și apoi, aveți posibilitatea să selectați un fișier bitmap pentru a introduce în thecontrol.
Pentru informații suplimentare despre controlul de imagine, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:
213732 XL2000: Folosind funcția LoadPicture cu un control de imagine

Informații suplimentare

Browser de obiecte

O listă completă a tuturor proprietăţilor şi metodelor pentru o anumită comandă este disponibilă în browser de obiecte. Pentru a găsi aceste informații în Excel, urmați acești pași:
  1. În meniul Instrumente , indicați spremacrocomenziși apoi faceți clic pe BasicEditor vizuale.
  2. În meniul vizualizare Proiect , faceți clic pe ObjectBrowser.
  3. În caseta Text de căutare , tastați nume de sign-in de control pe care doriți, și apoi faceți clic pe Căutare.
Pentru mai multe informații despre cum se utilizează Browser de obiecte în Visual Basic Editor, faceți clic pe Ajutor Microsoft Visual Basic din meniul Ajutor , tastați Browser de obiecte în Asistentul Office sau expert răspuns, apoi faceți clic pe Căutare pentru a vizualiza subiectul.
Pentru informații suplimentare despre cum se instalează ajutor Microsoft Excel pe computer, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:
231946 OFF2000: Cum se Adăugare/eliminare un singur program Office sau o componentă

Avertisment: acest articol a fost tradus automat

Proprietăți

ID articol: 829070 - Ultima examinare: 09/23/2015 07:43:00 - Revizie: 5.0

Microsoft Office Excel 2003, Microsoft Excel 2010, Microsoft Office Excel 2007, Excel 2016, Microsoft Excel 2013

  • kbprogramming kbfunctions kbhowtomaster kbhowto kbmt KB829070 KbMtro
Feedback