VBA ComboBox - Jak stworzyć i używać ComboBox w VBA?

Spisie treści

Excel VBA ComboBox

ComboBox to funkcja formularza użytkownika w VBA , różnią się one od pól tekstowych, ponieważ pola tekstowe są używane do przechowywania tylko tekstu i pozwalamy użytkownikowi wprowadzać dowolny typ danych, ale używając pól kombi ograniczamy użytkownika do żądanego typu odpowiedzi w ten sposób dane są uporządkowane, są podobne do sprawdzania poprawności danych list w programie Excel.

ComboBox można porównać do listy rozwijanej w programie Excel, w arkuszach roboczych. Użyliśmy walidacji danych, aby udostępnić listę rozwijaną, ale w VBA istnieje funkcja formularza użytkownika, w której jest używana do tworzenia listy rozwijanej w dowolnym formularzu użytkownika, ale jeśli chcemy użyć pola kombi w programie Excel, możemy również dostęp do niego z sekcji programisty, stamtąd możemy tworzyć pola kombi dla pojedynczych lub wielu komórek.

Combo Box jest bardzo podobny do listy rozwijanej, którą mamy w arkuszu programu Excel; za pomocą pola kombi możemy przechowywać z góry określone wartości, aby użytkownicy dokonywali wyboru z listy dostępnej z pola kombi. Pole kombi jest zwykle używane wraz z formularzami użytkownika jako część uzyskiwania danych wejściowych od użytkowników.

Formularze użytkownika są przydatne, ale posiadanie innych narzędzi w formularzu użytkownika sprawia, że ​​formularz użytkownika jest tak wyjątkowy. Jednym z narzędzi, których często używamy jako narzędzia do tworzenia formularzy użytkownika, jest „ComboBox”.

2 najlepsze sposoby tworzenia VBA ComboBox

# 1 - Korzystanie z bezpośredniego kodowania

Najpierw zobaczymy, jak używać Combo Box z arkuszem. Otwórz dowolny arkusz w skoroszycie programu Excel, przejdź do zakładki Deweloper, a pod tą kartą mamy narzędzie o nazwie „Wstaw”. Kliknij na to, a pod tym mamy dwie opcje Active X Controls & Form Controls w programie Excel.

Z „Active X Controls” wybierz „Combo Box”.

Teraz możesz narysować ten obiekt na dowolnym arkuszu.

Kliknij prawym przyciskiem myszy pole kombi i wybierz opcję „Właściwości”.

Po wybraniu właściwości otworzy się ogromna lista właściwości pola kombi.

W przypadku tego pola kombi podamy listę nazw działów, więc zmień właściwość name pola kombi na „DeptComboBox”.

Teraz to pole kombi będzie miało nazwę „DeptComboBox”. Musimy podać z góry określone nazwy działów, więc tutaj mam listę nazw działów.

Teraz musimy dodać te wartości do listy pól kombi. Możemy to zrobić na dwa sposoby, poprzez kodowanie lub przez menedżera nazw.

Kliknij dwukrotnie Combobox, aby przejść do procedury makra VBA.

Ale musimy zobaczyć te nazwy działów po otwarciu skoroszytu, więc kliknij dwukrotnie „ThisWorkbook”.

Z listy rozwijanej wybierz „Skoroszyt”.

Z opcji wybierz „Otwórz”.

Teraz utworzy puste miejsce, takie jak poniżej.

Wewnątrz tego makra wprowadź poniższy kod.

Kod:

Private Sub Workbook_Open () With Worksheets („Sheet1”). DeptComboBox .AddItem „Finance” .AddItem „Marketing” .AddItem „Merchandising” .AddItem „Operations” .AddItem „Audit” .AddItem „Client Service” End With End Sub

OK, teraz zapisz i zamknij skoroszyt. Po ponownym otwarciu skoroszytu mogliśmy zobaczyć w nim nazwy działów.

# 2 - Korzystanie z UserForm

Innym sposobem dodawania wartości do ComboBox jest użycie formularza użytkownika. Najpierw nadaj komórkom nazwę „Dział”.

Przejdź do Edytora Visual Basic i wstaw formularz użytkownika z opcji WSTAW.

Teraz tworzony jest nowy formularz użytkownika.

Obok formularza użytkownika widzimy „Toolbox” z tego przybornika, możemy wstawić „Combo Box”.

Now the combo box is embedded in the user form. In this method, to open the properties option, select the combo box and press the F4 key to open the properties window.

Scroll down the properties tab and choose “Row Source.”

For this “Row Source,” enter the name that we had given to department name cells.

Now this combo box holds the reference of the name “Department.”

Now run the user form by using the run button.

Now we can see a list of department names in the combo box on the user form.

Practically user form is associated with a combo box, text box, and many other tools. We will create a simple data entry user form with a text box & combo box.

Create a user form like the below.

Create two Command Buttons.

Double click on the “SUBMIT” button it will open up below macro.

Inside this macro, add the below code.

Code:

Private Sub CommandButton1_Click () Dim LR As Long LR = Cells (Rows.Count, 1) .End (xlUp) .Row + 1 Cells (LR, 1) .Value = TextBox1.Value Cells (LR, 2) .Value = ComboBox1 .Value End Sub

Teraz kliknij dwukrotnie przycisk „ANULUJ” i dodaj poniższy kod.

Teraz w arkuszu utwórz szablon taki jak poniżej.

Teraz uruchom formularz użytkownika, a otworzy się on w ten sposób.

Wprowadź nazwisko pracownika i wybierz nazwę działu z listy kombi.

Kliknij przycisk WYŚLIJ i zobacz magię.

Otrzymaliśmy wartości wprowadzone w utworzonym przez nas formacie tabeli.

Rzeczy do zapamiętania

  • COMBO BOX ma również swoje właściwości.
  • Dodawanie wartości do listy odbywa się na dwa sposoby. Jeden to sposób kodowania, a drugi to odwołanie do nazwy zakresu.
  • COMBO BOX jest zwykle częścią formularza użytkownika.

Interesujące artykuły...