Pole listy VBA

W VBA możesz utworzyć Skrzynka na listy gdzie użytkownik może wybrać jedną z wymienionych opcji. Pole listy jest często używane w formularzach użytkownika, ale może być również używane w arkuszu. W tym samouczku dowiesz się, jak tworzyć, wypełniać i usuwać Listbox. Zobaczysz również, jak uzyskać wybór użytkownika w VBA i użyć go w kodzie.

Jeśli chcesz dowiedzieć się, jak utworzyć ComboBox, kliknij tutaj: VBA ComboBox

Jeśli chcesz dowiedzieć się, jak utworzyć pole wyboru, kliknij tutaj: VBA Checkbox

Utwórz Listbox

Aby wstawić pole listy w arkuszu, musisz przejść do Karta programisty, Kliknij Wstawić i pod kontrolkami ActiveX wybierz Skrzynka na listy:

Obraz 1. Wstaw pole listy do arkusza roboczego

Po wybraniu wstawionego pola listy możesz kliknąć Nieruchomości pod Karta programisty:

Obraz 2. Zmień właściwości pola listy

Tutaj możesz ustawić różne właściwości pola listy. Na początek zmieniliśmy atrybut Nazwa do lstListBox. Teraz możemy użyć pola listy o tej nazwie w kodzie VBA.

Wypełnij pole listy w kodzie VBA

Najpierw musimy wypełnić Listbox wartościami. W większości przypadków pole listy musi być wypełnione po otwarciu skoroszytu. Z tego powodu musimy umieścić kod do wypełnienia Listbox w obiekcie zeszyt ćwiczeń, procedura Otwarty. Ta procedura jest wykonywana za każdym razem, gdy użytkownik otwiera skoroszyt. Oto kod:

123456789 Z Sheet1.lstListBox.AddItem "Jan".Dodaj pozycję "Michael".Dodaj pozycję "Jennifer".AddItem "Lilly".AddItem "Robert"Kończyć z

Jak widać na obrazku 3, wypełniliśmy naszą listę 5 imionami (John, Michael, Jennifer, Lilly i Robert):

Obraz 3. Wypełnij pole listy w VBA

Wypełnij pole listy z zakresu komórek

Innym możliwym sposobem wypełnienia pola listy jest pozwolenie użytkownikowi na zrobienie tego. Listbox można połączyć z zakresem komórek. Dlatego za każdym razem, gdy użytkownik wprowadzi nową wartość w zakresie komórek, pole listy zostanie zaktualizowane o tę wartość.

Jeśli chcesz to włączyć, musisz przejść do Nieruchomości z ListBox i ustaw atrybut ListaWypełnij Zakres:

Obraz 4. Wypełnij pole listy z zakresu komórek

Połączyliśmy nasz Listbox z zakresem E2:E5, gdzie umieszczamy żądane nazwy (Nathan, Harry, George, Roberta). W rezultacie pole listy jest teraz wypełnione tymi nazwami.

Uzyskaj wybrany element listy w VBA

Celem pola listy jest umożliwienie wyboru użytkownikom. Aby pobrać wartość wybraną przez użytkownika, musisz użyć tego kodu:

123 Dim strSelectedItem As VariantstrSelectedItem = Arkusz1.lstListBox.Value

Wybór użytkowników znajduje się w atrybucie Wartość z Arkusz1.lstListbox obiekt. Ta wartość jest przypisana do zmiennej strSelectedItem:

Obraz 5. Uzyskaj wybraną wartość z listy w VBA

Wybraliśmy Złupić w polu listy i wykonał procedurę. Jak widać na obrazku 5, wartość strSelectedItem jest Złupić, czyli wybrana przez nas wartość. Co więcej, możesz przetworzyć tę zmienną w kodzie.

Wyczyść pole listy

Aby wyczyścić pole listy w VBA, musisz użyć Jasne metoda Arkusz1.lstListBox obiekt. Spowoduje to usunięcie wszystkich pozycji z listy. Oto kod:

1 Arkusz1.lstListBox.Wyczyść

Kiedy wykonujemy kod, otrzymujemy pusty Listbox:

Obraz 6. Wyczyść pole listy

Użyj pola listy w formularzu użytkownika

Jak wspomnieliśmy, Listbox jest najczęściej używany w Userforms. Aby wyjaśnić, jak możesz to zrobić, najpierw wstawimy formularz użytkownika. W edytorze VBA kliknij prawym przyciskiem myszy nazwę modułu, kliknij Wstawić i wybierz Formularz użytkownika:

Obraz 7. Wstaw formularz użytkownika

Aby wyświetlić kontrolki do wstawiania, musisz włączyć Przybornik. Aby to zrobić, kliknijPrzybornik na pasku narzędzi. Następnie otrzymasz okna ze wszystkimi dostępnymi kontrolkami. Możesz kliknąć Skrzynka na listy aby utworzyć go w formularzu użytkownika.

Obraz 8. Wstaw Listbox w Userform

Nazwiemy ComboBox cmbComboBox. Aby wypełnić go wartościami, musimy umieścić w metodzie następujący kod: Zainicjuj obiektu Formularz użytkownika:

12345678910111213 Prywatna Sub UserForm_Initialize()Z UserForm1.lstListBox.AddItem "Jan".Dodaj pozycję "Michael".Dodaj pozycję "Jennifer".AddItem "Lilly".AddItem "Robert"Kończyć zNapis końcowy

Ten kod jest wyzwalany za każdym razem, gdy użytkownik uruchamia formularz użytkownika i wypełnia pole listy tymi 5 nazwami:

Obraz 9. Listbox z wartościami w Userform

Jeśli chcesz uzyskać wybraną wartość z ComboBox, musisz użyć tej samej logiki dla Combobox w arkuszu, co wyjaśniono wcześniej w artykule.

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave