/ / "Excel VBA" Userform su keliais puslapiais

Excel VBA "Userform" su keliais puslapiais

Žemiau apžvelgsime "Excel VBA" programą, sukuriančią "Userform", kurioje yra keli puslapiai. Šiame vartotojo formoje taip pat yra paveikslėlių.

"Multipage Control" yra du puslapiai. Puslapyje 1 vartotojas gali užpildyti savo asmeninę informaciją. 2 puslapyje vartotojas gali nurodyti, kokią tapybą jis mėgsta labiausiai.

Vartotojoformas Puslapis 1
Vartotojoformas Puslapis 2

Norėdami sukurti šį Userform, atlikite šiuos veiksmus.

1. Atidarykite "Visual Basic" redaktorių. Jei "Project Explorer" nematoma, spustelėkite "View", "Project Explorer".

2. Spustelėkite Insert, Userform. Jei įrankių dėžė automatiškai pasirodys, spustelėkite Rodyti, įrankių dėžutę. Jūsų ekranas turėtų būti nustatytas žemiau.

"Userform" ekrano sąranka "Excel VBA"

3. Įtraukite daugialypės terpės valdiklį, etiketes, teksto laukus (pirmą viršuje, antrąjį po pirmojo), rėmelį, parinkties mygtukus (pirmiau kairėje, antrasis dešinėje), sąrašo langą, vaizdo valdymo ir komandų mygtuką. Kai tai bus baigta, rezultatas turėtų atitikti tuščią anksčiau pateiktą "Userform" versiją. Pavyzdžiui, sukurkite "Multipage" valdiklį, spustelėdami "Multipage" (įrankių rinkinys). Tada galite perkelti "Multipage" valdiklį į "Userform". Kai atvykstate į "Gender" rėmelį, nepamirškite pirmiausia atkreipti šio rėmelio, prieš tai nurodydami du pasirinkimo mygtukus.

4. Galite keisti valdiklių pavadinimus ir antraštes. Vardai naudojami "Excel VBA" kodu. Subtitrai yra tie, kurie rodomi ekrane. Gera praktika pakeisti kontrolinių pavadinimų pavadinimus, tačiau čia nereikia, nes šiame pavyzdyje turime tik keletą kontrolių. Norėdami pakeisti Userform, Multipage skirtukų, etikečių, rėmelių, parinkčių mygtukų ir komandų mygtuko antraštę, spustelėkite View, Properties Window ir spustelėkite kiekvieną valdiklį.

5. Norėdami parodyti "Userform", į savo darbalapį pridėkite komandų mygtuką ir pridėkite šią kodo eilutę:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Dabar ketiname sukurti Sub UserForm_Initialize. Kai naudojate "Show" metodą "Userform", šis pogrupis automatiškai bus įvykdytas.

6. Atidarykite "Visual Basic" redaktorių.

7. "Project Explorer" dešiniuoju pelės mygtuku spustelėkite "UserForm1" ir spustelėkite "Peržiūrėti kodą".

8. Iš kairės išskleidžiamojo sąrašo pasirinkite Userform. Iš dešiniojo išskleidžiamojo sąrašo pasirinkite Inicijuoti.

9. Įtraukite šias kodo eilutes:

Private Sub UserForm_Initialize()

With ListBox1
    .AddItem "Mountains"
    .AddItem "Sunset"
    .AddItem "Beach"
    .AddItem "Winter"
End With

End Sub

Paaiškinimas: sąrašo laukelis 2 puslapyje bus užpildytas.

Dabar sukūrėme pirmąją "Userform" dalį. Nors tai jau atrodo tvarkinga, dar nieko nebus, kai sąraše pasirodysime elementą arba spustelėsime mygtuką "Gerai".

10. Atsisiųskite vaizdus (dešinėje šio puslapio pusėje) ir pridėkite juos prie "C: test"

11. "Project Explorer" dukart spustelėkite "UserForm1".

12. Dukart spustelėkite sąrašo laukelį.

13. Įtraukite šias kodo eilutes:

Private Sub ListBox1_Click()

If ListBox1.ListIndex = 0 Then
    Image1.Picture = LoadPicture("C:testMountains.jpg")
End If

If ListBox1.ListIndex = 1 Then
    Image1.Picture = LoadPicture("C:testSunset.jpg")
End If

If ListBox1.ListIndex = 2 Then
    Image1.Picture = LoadPicture("C:testBeach.jpg")
End If

If ListBox1.ListIndex = 3 Then
    Image1.Picture = LoadPicture("C:testWinter.jpg")
End If

End Sub

Paaiškinimas: šios kodo eilutės įkeliamos nuotraukos, priklausomai nuo pasirinkto elemento sąrašo lauke.

14. Dukart spustelėkite mygtuką Gerai.

15. Įtraukite šias kodo eilutes:

Private Sub CommandButton1_Click()

Dim emptyRow As Long

"Make Sheet1 active
Sheet1.Activate

"Determine emptyRow
emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1

"Transfer information
Cells(emptyRow, 1).Value = TextBox1.Value
Cells(emptyRow, 2).Value = TextBox2.Value

If OptionButton1.Value = True Then
    Cells(emptyRow, 3).Value = "Male"
Else
    Cells(emptyRow, 3).Value = "Female"
End If

Cells(emptyRow, 4).Value = ListBox1.Value

"Close Userform
Unload Me

End Sub

Paaiškinimas: pirmiausia aktyvuojame "Sheet1". Toliau mes nustatome emptyRow. Kintamasis emptyRow yra pirmasis tuščias eilutė ir padidėja kiekvieną kartą, kai įrašas pridedamas. Toliau mes perduodame informaciją iš Userform į konkrečius emptyRow stulpelius. Galiausiai uždarome "Userform".

16. Uždarykite "Visual Basic" redaktorių, įveskite žemiau pateiktas etiketes į 1 eilutę ir išbandykite "Userform".

Rezultatas:

Išbandykite "Userform"

Taip pat perskaitykite: