Pole listy Excel VBA - łatwe makra Excel

Spisie treści

Pole listy to lista, z której użytkownik może wybrać element. Stworzyć skrzynka na listy w Excel VBA, wykonaj następujące kroki.

1. Na karcie Deweloper kliknij Wstaw.

2. W grupie Kontrolki ActiveX kliknij Pole listy.

3. Przeciągnij pole listy na arkusz.

Uwaga: możesz zmienić nazwę kontrolki, klikając ją prawym przyciskiem myszy (upewnij się, że wybrano Tryb projektowania), a następnie klikając Właściwości. Na razie zostawimy ListBox1 jako nazwę pola listy.

Utwórz wydarzenie otwartego skoroszytu. Kod dodany do zdarzenia Workbook Open zostanie wykonany przez Excel VBA po otwarciu skoroszytu.

4. Otwórz Edytor Visual Basic.

5. Kliknij dwukrotnie na Ten skoroszyt w Eksploratorze projektów.

6. Wybierz Skoroszyt z lewej listy rozwijanej i wybierz Otwórz z prawej listy rozwijanej.

7. Aby dodać elementy do pola listy, dodaj następujące wiersze kodu do zdarzenia Workbook Open Event:

Z Arkuszem1.ListBox1
.AddItem "Paryż"
.AddItem "Nowy Jork"
.AddItem "Londyn"
Kończyć z

Uwaga: użyj Sheet2, jeśli pole listy znajduje się w drugim arkuszu, Sheet3, jeśli pole listy znajduje się w trzecim arkuszu itd. Jeśli używasz tych linii kodu poza zdarzeniem Workbook Open, możesz dodać następującą linię kodu przed tymi wierszami kodu. Ta linia kodu czyści pole listy. W ten sposób Twoje elementy nie zostaną dodane wielokrotnie, jeśli wykonasz kod więcej niż raz.

ListBox1.Wyczyść

8. Aby połączyć to pole listy z komórką, kliknij prawym przyciskiem myszy pole listy (upewnij się, że wybrany jest tryb projektowania) i kliknij Właściwości. Wypełnij D3 dla LinkedCell.

Uwaga: zobacz także właściwość ListFillRange, aby wypełnić pole listy zakresem komórek.

9. Zapisz, zamknij i ponownie otwórz plik Excel.

Wynik:

Chociaż w niektórych sytuacjach może być przydatne bezpośrednie umieszczenie pola listy w arkuszu, pole listy jest szczególnie przydatne, gdy jest umieszczone w formularzu użytkownika.

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

wave wave wave wave wave