Jak korzystać z ComboBox w VBA Excel Userform?

Spisie treści:

Anonim

Combobox w formularzu użytkownika jest jak rozwijane menu, którego można użyć do wybrania opcji z dostępnych opcji. Przypomina to menu rozwijane, które tworzymy za pomocą walidacji danych w arkuszach roboczych.

W większości formularzy cyfrowych musiałeś zobaczyć co najmniej jedno pole kombi. Mogło to być wybranie stanu z listy stanów, kursu z listy kursów, kraju z listy krajów itp. W tym artykule dowiemy się, jak dodać combobox w formularzu użytkownika VBA, jak aby zainicjować combobox z wartościami i jak pobrać wartość z combobox.

Dodawanie ComboBox do formularza użytkownika

Aby dodać combobox do formularza użytkownika, najpierw musisz mieć formularz użytkownika. Daj!.

Więc otwórz VBE używając CTRL+F11. Kliknij prawym przyciskiem myszy skoroszyt, przejdź do wstawiania i kliknij Formularz użytkownika. Masz dodany formularz użytkownika. Możesz przeczytać więcej o formularzach użytkownika w VBA tutaj.

Teraz z przybornika wybierz combobox. To czwarta opcja w górnym rzędzie. Jeśli nie widzisz przybornika. Przejdź do Widok w menu, kliknij Przybornik. Pojawi się przybornik.

Dodałem etykietę stanów, ponieważ to pole kombi będzie zawierało listę niektórych stanów i przycisk przesyłania do przesłania formularza.

Jak zainicjować combobox w formularzu użytkownika?

To jest część, w której większość ludzi popełnia błędy. Czasami uczniowie piszą kod do ładowania wartości w polu rozwijanym, a następnie przesyłają przyciski. A kiedy ładują formularz użytkownika, pole combobox nie pokazuje żadnych wartości.

Aby załadować combobox, należy napisać kod przed załadowaniem formularza użytkownika. Można to zrobić w module c lub przycisku, do którego ładujesz formularz. Kod do załadowania listy combobox powinien znajdować się przed poleceniem formname.show.

Ładowanie Combobox w podprogramie wywoływania UserForm

Powiedzmy, że chcę na stałe zakodować jakąś tablicę w polu kombi stanu. Napiszę więc podprogram, który załaduje formularz użytkownika w celu uzupełnienia informacji. Zobacz poniższy kod.

Sub load_userform() states = Array("Delhi", "UP", "UK", "Gujrat", "Kashmir") UserForm1.ComboBox1.List = states UserForm1.Show End Sub 

Definiuję tablicę „stany”, która zawiera kilka nazw stanów indyjskich. Teraz używam nazwy userform, aby uzyskać dostęp do combobox, ponieważ combobox jest częścią userform.

Nazwa mojego formularza użytkownika to userform1. A nazwa combobox to combobox1. To są nazwy domyślne. Możesz je zmienić w oknie właściwości.

Następnie inicjuję właściwość list combobox ze stanami.

A potem pokazuję userform1 za pomocą polecenia show.

Po uruchomieniu powyższego kodu w polu combobox zostaną wyświetlone wszystkie stany.

Inicjowanie Combobox za pomocą zdarzenia UserForm_Initialize().

Inną metodą ładowania komponentów combobox na userform jest użycie zdarzenia Userform Initialize. To zdarzenie jest uruchamiane przed załadowaniem formularza użytkownika. Wszystko, co chcesz zrobić przed załadowaniem formularza użytkownika, możesz to zrobić tutaj. Jedną z tych rzeczy jest ładowanie elementów combobox.

Więc kliknij dwukrotnie na formularzu użytkownika, aby otworzyć obszar kodowania w obiekcie formularza użytkownika. Teraz z lewego menu rozwijanego wybierz formularz użytkownika. Następnie z prawego menu rozwijanego wybierz inicjalizuj.

Zostanie wstawiona pusta nazwa podrzędna UserForm_Initialize(). Wszystko napisane w tej podsekcji zostanie wykonane przed pojawieniem się formularza użytkownika.

Więc piszemy tutaj kod inicjalizacji dla combobox.

Private Sub UserForm_Initialize() states = Array("Delhi", "UP", "UK", "Gujrat", "Kashmir") UserForm1.ComboBox1.List = states End Sub 

Zauważ, że nie mamy tutaj polecenia userform1.show. Nadal jest w tym module. Ta subskrypcja zostanie wykorzystana do wyświetlenia naszego formularza użytkownika na ekranie.

Sub load_userform() UserForm1.Show End Sub 

Tak więc użytkownicy będą uruchamiać load_userform sub za pomocą jakiegoś polecenia, przycisku lub elementu przypisanego do makra. Gdy kompilator uruchamia polecenie code userform1.show, natychmiast uruchamia zdarzenie useforma_initialize(). Następnie pokazuje użytkownikom formularz użytkownika.

Uwagi:

Jeśli napiszesz kod, aby zainicjować combobox z wartościami w komendzie button1 click, combobox nic nie pokaże.

Aby zainicjować pole kombi z wartościami, załaduj go w każdym przypadku, który wystąpi, zanim użytkownik dotrze do pola kombi do wypełnienia.

Pobieranie wartości z ComboBox

Więc używamy formularzy, aby uzyskać pewne informacje. Aby wykorzystać te informacje, musimy je odzyskać. Aby uzyskać dowolną wartość z pola combobox userform, używamy właściwości combobox.value. Ogólnie rzecz biorąc, pobieramy wartości z elementów formularza, gdy użytkownik wypełni formularz i prześle formularz za pomocą przycisku Prześlij. Możemy więc użyć zdarzenia commandbutton_click. Więc wstaw przycisk polecenia i napisz na nim prześlij, jeśli jeszcze go nie masz. Teraz kliknij go dwukrotnie, a znajdziesz się w zdarzeniu commandButton_click.

Teraz utwórz zmienną do przechowywania wartości. Zapisz to na kartce, jeśli chcesz. Na koniec wyjdź z formularza za pomocą polecenia Unload Me. Jak pokazano w poniższym kodzie.

Private Sub CommandButton1_Click() State = ComboBox1.Value ThisWorkbook.Worksheets("sheet1").Range("A1") = State Unload Me End Sub 

Więc tak, w ten sposób używasz combobox w formularzach użytkownika VBA. Mam nadzieję, że wyjaśniłem i rzeczowo. Jeśli masz jakieś pytania dotyczące tego tematu lub innych pytań związanych z VBA, zadaj mi je w sekcji komentarzy poniżej.

Pierwsze kroki z formularzami użytkownika Excel VBA| Wyjaśnię, jak stworzyć formularz w Excelu, jak korzystać z przybornika VBA, jak obsługiwać dane wejściowe użytkownika i wreszcie jak przechowywać dane wejściowe użytkownika. Przejrzymy te tematy na jednym przykładzie i przewodniku krok po kroku.

Zmienne VBA w Excelu| VBA oznacza Visual Basic for Applications. Jest to język programowania firmy Microsoft. Jest używany z aplikacjami Microsoft Office, takimi jak MSExcel, MS-Word i MS-Access, podczas gdy zmienne VBA są specyficznymi słowami kluczowymi.

Zakres zmiennych Excel VBA| We wszystkich językach programowania mamy specyfikatory dostępu do zmiennych, które definiują, skąd można uzyskać dostęp do zdefiniowanej zmiennej. Excel VBA nie jest wyjątkiem. VBA również ma specyfikatory zakresu.

Argumenty ByRef i ByVal | Gdy argument jest przekazywany jako argument ByRef do innej podrzędnej lub funkcji, wysyłane jest odwołanie do rzeczywistej zmiennej. Wszelkie zmiany wprowadzone w kopii zmiennej zostaną odzwierciedlone w oryginalnym argumencie.

Usuń arkusze bez monitów o potwierdzenie za pomocą VBA w programie Microsoft Excel | Ponieważ usuwasz arkusze za pomocą VBA, wiesz, co robisz. Chcesz powiedzieć programowi Excel, aby nie wyświetlał tego ostrzeżenia i usuwał ten cholerny arkusz.

Dodaj i zapisz nowy skoroszyt za pomocą VBA w programie Microsoft Excel 2016| W tym kodzie najpierw utworzyliśmy odwołanie do obiektu skoroszytu. A następnie zainicjalizowaliśmy go nowym obiektem skoroszytu. Zaletą tego podejścia jest to, że możesz łatwo wykonywać operacje na tym nowym skoroszycie. Jak zapisywanie, zamykanie, usuwanie itp.

Wyświetl komunikat na pasku stanu Excel VBA| Pasek stanu w programie Excel może być używany jako monitor kodu. Gdy twój kod VBA jest długi i wykonujesz kilka zadań za pomocą VBA, często wyłączasz aktualizację ekranu, aby nie widzieć migotania ekranu.

Wyłącz komunikaty ostrzegawcze za pomocą VBA w programie Microsoft Excel 2016| Ten kod nie tylko wyłącza alerty VBA, ale także zwiększa wydajność czasową kodu. Zobaczmy jak.

Popularne artykuły:

50 skrótów Excela, które zwiększą Twoją produktywność | Przyspiesz swoje zadanie. Te 50 skrótów przyspieszy pracę w programie Excel.

Funkcja WYSZUKAJ.PIONOWO w programie Excel | Jest to jedna z najczęściej używanych i popularnych funkcji programu Excel, która służy do wyszukiwania wartości z różnych zakresów i arkuszy.

LICZ.JEŻELI w Excelu 2016 | Policz wartości z warunkami za pomocą tej niesamowitej funkcji. Nie musisz filtrować danych, aby zliczyć określone wartości. Funkcja Countif jest niezbędna do przygotowania deski rozdzielczej.

Jak korzystać z funkcji SUMA.JEŻELI w programie Excel | To kolejna ważna funkcja deski rozdzielczej. Pomaga to zsumować wartości w określonych warunkach.