Excel VBA dla każdej pętli

„Każde” słowo kluczowe jest używane w VBA wraz z funkcją „For”. Oznacza to, że dla każdej jednostki w tablicy lub zakresie powtórz proces w pętli for. Zasadniczo nie wprowadzamy zakresu kroków, tj. Od 1 do 5 lub od 1 do 10, zamiast tego po prostu umieszczamy go, jak pokazano w poniższej składni.

Składnia:

Dla każdej nazwy obiektu w zakresie

Uwaga: musisz mieć kartę Deweloper w arkuszu programu Excel.

Jeśli nie widzisz karty „Deweloper” w programie Excel, zapoznaj się z poniższymi krokami.

Krok 1: Kliknij opcję pliku .

Krok 2: Zostanie wyświetlone menu rozwijane. Kliknij kartę Opcje .

Krok 3: Po kliknięciu „Opcje” pojawi się okno dialogowe, jak pokazano poniżej, i kliknij opcję Dostosuj wstążkę .

Krok 4: Kiedy przeciągniemy w dół opcje dostosowywania wstążki, znajdziemy opcję dla programisty, musimy zaznaczyć to pole, które pozwoli nam używać VBA w programie Excel.

Jak korzystać z każdej pętli w VBA?

Poniżej znajdują się różne przykłady użycia dla każdej pętli w programie Excel przy użyciu kodu VBA.

Możesz pobrać ten szablon VBA dla każdej pętli Excel tutaj - VBA dla każdego szablonu Excel pętli

Excel VBA dla każdej pętli - przykład nr 1

Weźmy prosty przykład For Each Loop w VBA. Załóżmy, że poniżej znajduje się zestaw danych w VBA.

Wykonaj poniższe kroki, aby użyć opcji Dla każdej pętli w programie Excel VBA.

Krok 1: Kliknij kartę „Deweloper”, a następnie kliknij opcję „Visual Basic” po lewej stronie (pierwsza opcja), jak pokazano poniżej.

Po kliknięciu pojawi się nowe okno, jak pokazano poniżej.

Zauważysz, że po lewej stronie znajdują się dwie zakładki: „Arkusz1 (Arkusz1)” i „ThisWorkbook”. Jedyną różnicą jest „Arkusz1”, gdy chcemy wykonać kod tylko dla tego konkretnego arkusza, aw „ThisWorkbook” możemy napisać kod i wykonać, który można zastosować dla całego skoroszytu programu Excel.

Krok 2: Kliknij dwukrotnie „Arkusz1 (Arkusz1)), a zobaczysz pusty ekran, w którym musimy napisać kod. Nadaj nazwę utworzonemu podzbiorowi. Tutaj nadaliśmy nazwę „Sub For_Each_Ex1 ()”, jak pokazano na poniższym zrzucie ekranu.

Kod:

 Sub For_Each_Ex1 () End Sub 

W ten sposób tworzymy podzbiór i automatycznie pojawia się „End Sub”. Jest to domyślnie funkcja programu Excel. Jeśli „End Sub” nie pojawi się, kod nie zostanie wykonany i zgłosi błąd.

Krok 3: Zadeklarujemy zmienne jako zakres.

Kod:

 Sub For_Each_Ex1 () Dim Earn, Range1 As Range End Sub 

Zadeklarowaliśmy tutaj dwie zmienne: „Zarabiaj”, których będziemy używać z For Each i „Range1” jako zakres zestawu danych.

Krok 4: Teraz ustalimy zakres, tj. Zakres danych, nad którymi musimy popracować, używając słowa kluczowego „Zestaw”, jak pokazano poniżej.

Kod:

 Sub For_Each_Ex1 () Dim Earn, Range1 As Range Set Range Range1 = Range („A1: A10”) End Sub 

Tutaj naprawiliśmy „Range1” od komórek zakresu A1 do A10, które są naszym zestawem danych.

Krok 5: Teraz wykonamy pętlę For za pomocą każdego słowa kluczowego.

Kod:

 Sub For_Each_Ex1 () Dim Earn, Range1 As Range Set Range Range1 = Range („A1: A10”) Dla każdego Earn In Range1 End Sub 

Tutaj, dla każdej wartości w zakresie, Zarabiaj otrzyma wartość przypisaną, gdy pętla For jest wykonywana krok po kroku.

Krok 6: Teraz użyjemy słowa kluczowego „Msgbox”, aby wyświetlić każdą pozycję wiersza w przypisanym zakresie.

Kod:

 Sub For_Each_Ex1 () Dim Earn, Range1 As Range Set Range Range 1 = Range („A1: A10”) Dla każdego Earn In Range1 MsgBox Earn.Value End Sub 

Tutaj „Earn.value” wyświetli wartość w komórce, tj. Zaczynając od pierwszej komórki w zakresie.

Krok 7: Teraz chcemy wykonać kolejną wartość z podanego zakresu komórek, dlatego w kodzie musimy użyć słowa kluczowego „Dalej”. Pomoże to przejść dalej w zakresie i wyświetlać każdą jednostkę w zakresie komórek jeden po drugim.

Kod:

 Sub For_Each_Ex1 () Dim Earn, Range1 As Range Set Range Range 1 = Range („A1: A10”) Dla każdego Earn In Range1 MsgBox Earn.Value Next Earn End Sub 

Krok 8: Uruchom kod, naciskając klawisz F5 lub Run i zobacz wynik.

W momencie wykonania wiersza kodu „Następny zarobek” do „Wartości zarobku” zostanie przypisana następna wartość komórki w zakresie. Jedno kliknięcie „OK” i będzie wyświetlać każdą wartość w zakresie, dopóki zakres wartości nie zostanie zakończony.

Excel VBA dla każdej pętli - przykład nr 2

Weźmiemy kolejny przykład, w którym wyświetlimy nazwę każdego arkusza w pliku programu Excel. Załóżmy, że w arkuszu programu Excel mamy arkusze o poniższych nazwach:

Ponieważ zauważamy, że w pliku Excel znajduje się około 5 arkuszy i musimy wyświetlać nazwy każdego z nich jeden po drugim.

Napiszemy i wykonamy kod w sekcji „ThisWorkbook”, jak zaznaczono w czerwonym polu poniżej:

Kliknij go dwukrotnie, a gdy pojawi się okienko i zacznij w nim pisać kod. Wykonaj poniższe kroki, aby użyć opcji Dla każdej pętli w programie Excel VBA:

Krok 1: Napiszemy kod, przypisując nazwę podzestawu, jak pokazano poniżej.

Kod:

 Sub pagename () End Sub 

Krok 2: Możemy również bezpośrednio rozpocząć pisanie instrukcji pętli „For” bez deklarowania zmiennej, jak pokazano poniżej.

Kod:

 Sub pagename () For Each sht In Application.Sheets End Sub 

Tutaj „sht” jest naszą zmienną1, która domyślnie jest deklarowana, a „Application.sheets” oznacza, że ​​w pliku uwzględniono wszystkie arkusze. Application.fucntion określa, że ​​możemy dodać dowolną funkcję lub funkcję lub narzędzie Excel, które należy wziąć pod uwagę podczas wykonywania kodu.

Krok 3: Teraz wprowadzimy składnię okna komunikatu i wraz z nią dodamy składnię do wyświetlanej nazwy arkusza, jak pokazano poniżej:

Kod:

 Sub pagename () For Each sht In Application.Sheets MsgBox "Nazwa arkusza to:" & sht.Name End Sub 

Tutaj oświadczenie, które chcielibyśmy wyświetlić to „Nazwa arkusza to:”, a następnie wpisujemy znak ampersand (&), który konkatenuje wiersz kodu, a następnie wpisujemy „sht.Name”, tj. Wybierze arkusz zaczynając od pierwszego arkusz i wyświetl nazwę.

Krok 4: Teraz musimy powtórzyć proces wyświetlania nazwy każdego arkusza. Dlatego użylibyśmy „Next sht”, jak pokazano poniżej:

Kod:

 Sub pagename () For Each sht In Application.Sheets MsgBox "Nazwa arkusza to:" & sht.Name Następny sht End Sub 

„Następny sht” poinformuje system, że rozważy następny arkusz i wyświetli jego nazwę do dalszego wykonania.

Krok 6: Uruchom kod, naciskając klawisz F5 lub Run i zobacz wynik.

Po kliknięciu „OK” kod zostanie wykonany dalej, wyświetli się nazwa następnego arkusza. Kod będzie wykonywany, dopóki nie zostaną wyświetlone żadne kolejne arkusze.

Excel VBA dla każdej pętli - przykład nr 3

Weźmy teraz przykład, w którym musimy zsumować wszystkie wartości w danym zestawie danych lub tablicy. Załóżmy, że poniżej jest zestaw danych:

Wykonaj poniższe kroki, aby użyć opcji Dla każdej pętli w programie Excel VBA:

Krok 1: Najpierw zadeklaruj nazwę podzbioru jako „eachadd ()”, jak pokazano poniżej.

Kod:

 Sub eachadd () End Sub 

Krok 2: Teraz zadeklarujemy potrzebne zmienne, jedną jako liczbę całkowitą o nazwie „total”, w której sumujemy wartości komórek po kolei i ustalamy zakres komórek, które zawierają wartości, które musimy dodać.

Kod:

 Sub eachadd () Dim total As Integer Dim Range 1 As Range End Sub 

Krok 3: Po zadeklarowaniu zmiennej i zakresu musimy ustalić zakres, który będzie używany w pętli. Naprawimy ten zakres od komórek A1 do A10 za pomocą słowa kluczowego „Set”, jak pokazano poniżej:

Kod:

 Sub eachadd () Dim total As Integer Dim Range 1 As Range Set Range Range 1 = Range („A1: A10”) End Sub 

Krok 4: Możemy teraz bezpośrednio rozpocząć korzystanie z funkcji pętli For i bezpośrednio zadeklarować zmienną. W tym przypadku używamy „add1” jako zmiennej i będzie ona domyślnie zadeklarowana przez system.

Kod:

 Sub eachadd () Dim total As Integer Dim Range 1 As Range Set Range Range 1 = Range („A1: A10”) For Each add1 In Range1 End Sub 

Krok 5: Dodanie każdego elementu z zakresu jeden po drugim do zmiennej zadeklarowanej jako „ogółem”. Domyślnie wartość „ogółem” początkowo wynosi zero. Musimy dodać wartość komórek jeden po drugim i ponownie ta suma musi ponownie dodać „suma”.

Kod:

 Sub eachadd () Dim total As Integer Dim Range1 As Range Set Range1 = Range („A1: A10”) For Each add1 In Range1 total = total + add1. Value End Sub 

Powyższa instrukcja jest wykonywana od prawej do lewej, tzn. „Add1.value” jest pierwszą wartością komórki i dodaje ją do „total”, która wynosi zero. Zatem suma wynosiłaby 0 + 1, która wynosi 1. I ta suma jako 1 byłaby zapisana w „total” przed znakiem „=”. Jest to zaleta, ponieważ formuła jest wykonywana od lewej do prawej.

Krok 6: Teraz dodaj „Next add1”, który pomoże teraz rozważyć kolejną wartość komórki zakresu danych i dodaj tę wartość do zmiennej „total”, jak pokazano poniżej.

Kod:

 Sub eachadd () Dim total As Integer Dim Range1 As Range Set Range Zakres 1 = Range („A1: A10”) For Each add1 In Range1 total = total + add1. Value Next add1 End Sub 

Krok 6: Naciśnij „F8”, aby uruchomić kod dla każdej linii. Możemy również zobaczyć wartość „sumy” na zrzucie ekranu poniżej.

Podobnie, dopóki zakres komórek nie zostanie przekroczony, pętla for będzie nadal wykonywać tę sumę tablicy.

Krok 7: Teraz użyjemy słowa kluczowego „Msgbox”.

Kod:

 Sub eachadd () Dim total As Integer Dim Range1 As Range Set Range1 = Range („A1: A10”) For Each add1 In Range1 total = total + add1.Value Next add1 MsgBox „Final Summation:” & total End Sub 

Krok 8: Uruchom kod, naciskając klawisz F5 lub Run i zobacz wynik.

Rzeczy do zapamiętania

  • „Każde” słowo kluczowe jest używane najczęściej tylko w przypadku użycia funkcji VBA For Loop. W przeciwnym razie ma ograniczone zastosowanie w programie Excel VBA.
  • Zaletą słowa kluczowego „Każde” jest tylko to, że nie mamy zadeklarowanych kroków od 1 do x w instrukcji „For”.

Polecane artykuły

To jest przewodnik po VBA dla każdej pętli. Tutaj omawiamy sposób użycia For Each Loop w programie Excel za pomocą kodu VBA wraz z praktycznymi przykładami i szablonem Excel do pobrania. Poniżej znajduje się kilka przydatnych artykułów Excela związanych z VBA -

  1. VBA Do While Loop
  2. Przełączanie kolumn w programie Excel
  3. VBA Break for Loop
  4. Policz nazwy w Excelu
  5. Jak uruchomić kod VBA?

Kategoria: