DZWON

Są tacy, którzy czytają tę wiadomość przed tobą.
Subskrybuj, aby otrzymywać najnowsze artykuły.
E-mail
Nazwa
Nazwisko
Jak chciałbyś przeczytać The Bell?
Bez spamu

Może zaistnieć sytuacja, w której będziesz musiał wielokrotnie wykonać blok kodu. Ogólnie rzecz biorąc, instrukcje są wykonywane sekwencyjnie: pierwsza instrukcja funkcji jest wykonywana jako pierwsza, potem druga i tak dalej.

Języki programowania zapewniają różne struktury kontrolne, które zapewniają bardziej złożone ścieżki wykonania.

Instrukcja loop umożliwia nam wielokrotne wykonanie instrukcji lub grupy instrukcji. Poniżej znajduje się ogólny widok instrukcji pętli w VBA.

VBA udostępnia następujące typy pętli do obsługi wymagań dotyczących pętli. Kliknij poniższe linki, aby sprawdzić ich szczegóły.

dla pętli

Pętla for to struktura kontroli powtórzeń, która umożliwia programiście efektywne napisanie pętli, która musi zostać wykonana określoną liczbę razy.

Składnia

Poniżej znajduje się składnia pętli for w VBA.

Dla licznika = początek Do końca .... .... Dalej

schemat przepływu

Poniżej przedstawiono przepływ sterowania w trybie pętli -

  • Robimy pierwszy krok. Ten krok umożliwia zainicjowanie dowolnych zmiennych sterujących pętlą i zwiększenie zmiennej licznika kroków.
  • Po drugie, stan jest oceniany. Jeśli true, wykonywana jest treść pętli. Jeśli ma wartość false, treść pętli nie jest wykonywana, a przepływ sterowania przechodzi do następnej instrukcji bezpośrednio po pętli For.
  • Po wykonaniu pętli for przepływ sterowania przechodzi do następnej instrukcji. Ta instrukcja umożliwia aktualizację dowolnych zmiennych sterujących pętlą. Jest aktualizowany na podstawie wartości licznika kroków.
  • Warunek jest teraz ponownie oceniany. Jeśli to prawda, pętla jest wykonywana, a proces powtarzany (treść pętli, następnie krok jest zwiększany, a następnie warunek ponownie). Gdy warunek stanie się fałszywy, pętla For się kończy.

przykład

Dodaj przycisk i dodaj następującą funkcję.

Private Sub Constant_demo_Click() Dim a As Integer a = 10 For i = 0 Do kroku 2 MsgBox "Wartość to i to: " & i Next End Sub

Kiedy powyższy kod jest kompilowany i wykonywany, daje następujący wynik.

Wartość i to: 0
Wartość i to: 2
Wartość i to: 4
Wartość i to: 6
Wartość i to: 8
Wartość i to: 10

Wielokrotnie wykonuje sekwencję instrukcji i skraca kod sterujący zmienną pętli.

dla pętli

Dla każdej pętli służy do wykonania instrukcji lub grupy instrukcji na każdym elemencie w tablicy lub kolekcji.

Dla każdej pętli jest podobny do For Loop; jednak pętla jest wykonywana dla każdego elementu w tablicy lub grupie. Dlatego licznik kroków nie będzie istniał w tym typie pętli. Jest używany głównie z tablicami lub używany w kontekście obiektów systemu plików do pracy rekurencyjnej.

Składnia

Poniżej znajduje się składnia For Each Loop w VBA.

Dla każdego elementu w grupie .... Dalej

przykład

Private Sub Constant_demo_Click() "owoce to tablica owoce = Array("jabłko", "pomarańcza", "wiśnie") Dim nazwy owoców As Variant "iterowanie przy użyciu For każdej pętli. Dla każdego elementu w owocach nazwy owoców = nazwy owoców & Item & Chr(10) Next MsgBox nazwy owoców End Sub

Kiedy powyższy kod jest wykonywany, wypisuje wszystkie nazwy owoców z jednym elementem na linię.

jabłko
Pomarańczowy
wiśnia

Jest to wykonywane, jeśli w grupie jest co najmniej jeden element i jest powtarzane dla każdego elementu w grupie.

while...wend pętla

W pętli While While ... Wend, jeśli warunek ma wartość True, wszystkie instrukcje są wykonywane do momentu napotkania słowa kluczowego Wend.

Jeśli warunek jest fałszywy, pętla kończy się, a formant przechodzi do następnej instrukcji po słowie kluczowym Wend.

Składnia

Poniżej znajduje się składnia pętli While..Wend w VBA.

Podczas gdy warunek (y) ... Wend

schemat przepływu

przykład

Private Sub Constant_demo_Click() Licznik przyciemnienia: Licznik = 10 Podczas licznika< 15 " Test value of Counter. Counter = Counter + 1 " Increment Counter. msgbox "The Current Value of the Counter is: " & Counter Wend " While loop exits if Counter Value becomes 15. End Sub

Po wykonaniu powyższego kodu w oknie komunikatu zostanie wyświetlony następujący komunikat.

Aktualna wartość licznika to: 11
Aktualna wartość licznika to: 12
Aktualna wartość licznika to: 13
Aktualna wartość licznika to: 14
Aktualna wartość licznika wynosi: 15

To sprawdza warunek przed wykonaniem treści pętli.

zrób pętlę while

Pętla do...while jest używana, gdy chcemy powtórzyć zestaw instrukcji, gdy warunek jest spełniony. Warunek można sprawdzić na początku pętli lub na końcu pętli.

Składnia

Poniżej znajduje się składnia pętli Do...While w języku VBA.

Czy Podczas gdy warunek ... ... Pętla

schemat przepływu

przykład

W poniższym przykładzie zastosowano pętlę Do ... while , aby sprawdzić stan na początku pętli. Instrukcje wewnątrz pętli są wykonywane tylko wtedy, gdy warunek stanie się True.

Private Sub Constant_demo_Click() Czy dopóki i< 5 i = i + 1 msgbox "The value of i is: " & i Loop End Sub

Wartość i to: 1
Wartość i to: 2
Wartość i to: 3
Wartość i to: 4
Wartość i to: 5

Alternatywna składnia

Istnieje również alternatywna składnia pętli Do ... while, która sprawdza stan na końcu pętli. Główna różnica między tymi dwiema składniami została wyjaśniona w poniższym przykładzie.

Wykonaj ... ... Zapętl podczas warunku

przykład

Poniższy przykład używa pętli Do ... while , aby sprawdzić stan na końcu pętli. Instrukcje wewnątrz pętli są wykonywane co najmniej raz, nawet jeśli warunek ma wartość False.

Private Sub Constant_demo_Click() i = 10 Do i = i + 1 MsgBox "Wartość i to: " & i Loop While i< 3 "Condition is false.Hence loop is executed once. End Sub

Kiedy powyższy kod jest wykonywany, wyświetla następujące dane wyjściowe w oknie komunikatu.

Wartość i to: 11

do..While instrukcje będą wykonywane tak długo, jak warunek będzie miał wartość True. (tj.) Pętla musi się powtarzać, dopóki warunek nie będzie fałszem.

zrób ..włącz pętlę

Pętla Do ... intil nie będzie używana, gdy chcemy powtórzyć zestaw instrukcji, gdy warunek jest fałszywy. Warunek można sprawdzić na początku pętli lub na końcu pętli.

Składnia

Poniżej znajduje się składnia pętli Do..Until w VBA.

Czy Aż do warunku ... ... Pętla

schemat przepływu

przykład

Poniższy przykład używa Do ... Before Loop, aby przetestować warunek na początku pętli. Instrukcje wewnątrz pętli są wykonywane tylko wtedy, gdy warunek jest fałszywy. Wychodzi z pętli, gdy warunek staje się spełniony.

Private Sub Constant_demo_Click() i = 10 Do dopóki i>15 "Warunek jest fałszywy. Dlatego zostanie wykonana pętla i = i + 1 msgbox ("Wartość i to: " & i) Loop End Sub

Kiedy powyższy kod jest wykonywany, wyświetla następujące dane wyjściowe w oknie komunikatu.

Wartość i to: 11
Wartość i to: 12
Wartość i to: 13
Wartość i to: 14
Wartość i to: 15
Wartość i to: 16

Alternatywna składnia

Istnieje również alternatywna składnia Do ... Before Loop, która testuje warunek na końcu pętli. Główną różnicę między tymi dwiema składniami wyjaśniono w poniższym przykładzie.

Wykonaj ... ... Zapętl Do warunku

schemat przepływu

przykład

Poniższy przykład używa Do ... Before Loop, aby sprawdzić warunek na końcu pętli. Instrukcje wewnątrz pętli są wykonywane co najmniej raz, nawet jeśli warunek ma wartość True.

Private Sub Constant_demo_Click() i = 10 Do i = i + 1 msgbox "Wartość i to: " & i Pętla do i more15 "Warunek jest prawdziwy. Dlatego pętla jest wykonywana raz. End Sub

Kiedy powyższy kod jest wykonywany, wyświetla następujące dane wyjściowe w oknie komunikatu.

Wartość i to: 11

do..Until instrukcje będą wykonywane, o ile warunek ma wartość False. (tj.) Pętla musi się powtarzać, dopóki warunek nie zostanie spełniony.

Zapisy kontroli pętli

Instrukcje sterowania pętlą zmieniają wykonywanie z ich normalnej sekwencji. Gdy wykonanie wykracza poza zakres, wszystkie inne instrukcje pętli nie są wykonywane.

Oświadczenie kontrolne i opis

Wyjście operatora

Wyjście for jest używane, gdy chcemy wyjść z pętli For w oparciu o określone kryteria. Po wykonaniu Exit For sterowanie przechodzi do następnej instrukcji bezpośrednio po pętli For.

Składnia

Poniżej znajduje się składnia Exit For Statement w VBA.

schemat przepływu

przykład

W poniższym przykładzie zastosowano Exit For . Jeśli liczba osiągnie 4, pętla For kończy się, a kontrola przechodzi do następnej instrukcji bezpośrednio po pętli For.

Private Sub Constant_demo_Click() Dim a As Integer a = 10 For i = 0 Do kroku 2 „i jest zmienną licznika i jest zwiększana o 2 MsgBox („Wartość to i to:” & i) Jeśli i = 4 Wtedy i = i * 10 "Jest to wykonywane tylko wtedy, gdy i=4 MsgBox ("Wartość to i to: " & i) Exit For "Exited when i=4 End If Next End Sub

Gdy powyższy kod jest wykonywany, wyświetla następujące dane wyjściowe w oknie komunikatu.

Wartość i to: 0
Wartość i to: 2
Wartość i to: 4
Wartość i to: 40

Kończy instrukcję pętli For i przenosi wykonanie do instrukcji bezpośrednio po pętli

Wyjście Wykonaj

Instrukcja Exit Do jest używana, gdy chcemy wyjść z pętli Do na podstawie określonych kryteriów. Może być używany zarówno w pętlach Do Do ... While i Do ... Before.

Po wykonaniu Exit Do kontrola przechodzi do następnej instrukcji bezpośrednio po pętli Do.

Składnia

Poniżej znajduje się składnia instrukcji Exit Do w VBA.

przykład

W poniższym przykładzie zastosowano Exit Do . Jeśli licznik osiągnie 10, linia wyjściowa Do kończy się, a sterowanie przechodzi do następnej instrukcji bezpośrednio po pętli For.

Private Sub Constant_demo_Click() i = 0 Dopóki i<= 100 If i >10 Then Exit Do " Loop Exit if i>10 End If MsgBox ("Wartość i to: " & i) i = i + 2 Loop End Sub

Kiedy powyższy kod jest wykonywany, wyświetla następujące dane wyjściowe w oknie komunikatu.

Wartość i to: 0
Wartość i to: 2
Wartość i to: 4
Wartość i to: 6
Wartość i to: 8
Wartość i to: 10

Kończy instrukcję Do While i przenosi wykonanie do instrukcji bezpośrednio po pętli

Cykl to struktura algorytmiczna, za pomocą którego realizowane jest wielokrotne powtórzenie bloku instrukcji.

Instrukcja pętli z licznikiem (Dla … Dalej)

Instrukcja For … Next umożliwia pętlę przez zestaw instrukcji (instrukcji) określoną liczbę razy. Składnia instrukcji:

Do licznik = wartość_początkowa Do wartość_końcowa

[instrukcje]

[instrukcje]

Następny[ licznik]

Parametr licznik to zmienna liczbowa, która automatycznie zmienia swoją wartość o wartość krok po każdej iteracji cyklu. Cykl jest wykonywany do licznik£ wartość_końcowa z dodatnią wartością parametru krok lub do licznik³ wartość_końcowa z ujemną wartością parametru krok. Zatem pętla nigdy nie zostanie wykonana, jeśli z dodatnią wartością kroku wartość_początkowa więcej niż wartość_końcowa. Jeśli parametr Kroku krok zostanie pominięty, to domyślnie przyrost zmiennej licznika jest ustawiony na 1.

Instrukcja Exit For kończy wykonywanie pętli „wcześnie” i przekazuje sterowanie do instrukcji następującej po instrukcji pętli. Exit For jest zwykle umieszczany w instrukcji warunkowej, na przykład:

Jeśli stan Następnie wyjdź po

Notatka. Zgodnie ze składnią instrukcji For parametr licznik- zmienna arytmetyczna dowolnego typu, nadal lepiej jest użyć typu integer zmiennej, ponieważ część ułamkowa wartości zmiennej typu rzeczywistego zwykle zawiera błąd. Ma to związek ze sposobem przechowywania liczb w komputerze.

Przykład 1

Znajdź sumę pierwszego 10 liczby naturalne: S = 1 + 2 + 3 + ...+ 10 . Fragment programu:

Dim I jako Integer, S jako Integer

S=0 " Zerowanie wartości zmiennej S

Dla i = 1 do 10 " Początek cyklu. Ustaw wartości początkowe i końcowe
parametr pętli. Domyślny krok pętli to 1.

S = S + i " Operator przypisania jest wykonywany za każdym razem
" wykonanie pętli, w tym przykładzie 10 razy

Dalej " Koniec cyklu. Wartość parametru cyklu jest zwiększana.

W tym fragmencie programu pętla zostanie wykonana dokładnie 10 razy.

Przykład 2

Wyświetl w 1. kolumnie arkusza roboczego (od 2. rzędu) x wartości w zakresie od 0 do 3,2 z krokiem 0,4.

Publiczna karta podrzędna()

Dim x As Single, i As Integer

Dla x = 0 do 3,2 krok 0,4

Chociaż długość przedziału jest dokładnie podzielna przez krok 0,4, wynik w arkuszu jest następujący:

Co robić?

1. Możesz nieznacznie zwiększyć wartość końcową, w tym przykładzie zamiast 3.2 wpisz 3.201.

2. Określ liczbę powtórzeń chicle i napisz pętlę nad licznikiem typu całkowitego.

W takim przypadku program będzie wyglądał tak:

Publiczna karta podrzędna1()

Dim x As Single, i As Integer, n As Integer

n = CInt((3,2 - 0) / 0,4)

Dla i = 0 Do n Krok 1

Komórki(i + 2, 1) = x

Dla każdego … instrukcja następnej pętli

Pętla For Each … Next umożliwia powtórzenie wykonania grupy instrukcji dla każdego elementu tablicy lub rodziny. Ta instrukcja ma następującą składnię:

Dla każdego element W Grupa

[instrukcje]

[instrukcje]

Następny[ element]

Parametr element jest zmienną reprezentującą element rodziny lub tablicy. Argument Grupa to nazwa tablicy lub rodziny. Oświadczenia są wykonywane tylko raz dla każdego członka grupy. Użycie instrukcji jest wygodne, ponieważ nie trzeba z góry wiedzieć, ile elementów znajduje się w tablicy lub rodzinie. Zmienny element musi być typu Variant.

Przykład 1

Znajdź średnią arytmetyczną wszystkich elementów wybranego zakresu

Średnia funkcji publicznej (zakres jako zakres) jako podwójna

Przyciemnij element jako wariant

Dim Sum jako podwójne

Dim liczba jako liczba całkowita

Ilość = 0

Dla każdego elementu w zakresie

Kwota = Kwota + Przedmiot

Ilość = Ilość + 1

Następny element

Średnia = Kwota / Ilość

Aplikacja. Wybrany zakres sąsiednich komórek musi zawierać liczby. Liczby w pustych komórkach są traktowane jako 0. Tekst w komórce spowoduje błąd.

Wymienione powyżej instrukcje If … End If, Select … Case, For … Next, For Each … Next są grupą instrukcji sterujących, które zmieniają kolejność wykonywania poleceń. Instrukcje sterujące można zagnieżdżać w dowolnej kolejności.

W tej lekcji rozważymy pracę z cyklem Do w VBA. Przykład pracy z pętlą For pokaże również przykład tworzenia formuł w Excelu za pomocą makr.

Cykl Do działa na zasadzie licznika. Do Stosuje się go w przypadkach, gdy konieczne jest powtórzenie niektórych czynności określoną liczbę razy. Na przykład cykl Do często używany podczas czytania tablic.

Cykl Do ma następującą składnię:
Do licznik = początek cyklu Do koniec cyklu [krok krok]
grupa operatorów, komendy itp.
Wyjdź dla
Następny licznik

  • "licznik" - zmienna, która zmienia się na określoną "krok". Jeśli krok nie jest określony, jest on podejmowany domyślnie.
  • „rozpoczęcie cyklu”, "koniec cyklu liczby lub zmienne wskazujące dolną i górną granicę licznika. Cykl zatrzymuje się, gdy "licznik" >"koniec cyklu" ( lub, jeśli cykl jest odwrócony, tj. z krokiem -1, to "licznik"< "koniec cyklu”).
  • Wyjście dla- polecenie, aby wymusić zatrzymanie cyklu. Stosuje się go w przypadkach, gdy wystąpiło jakieś zdarzenie, po którym konieczne jest zatrzymanie wykonywania poleceń w pętli lub zapobieżenie wystąpieniu błędu.

Spójrzmy na kilka przykładów użycia pętli Do. W przyszłości będziemy spotykać się z tym cyklem dość często.

Przykład 1
Biorąc pod uwagę dwie kolumny C i E wypełnione cyframi:

Musisz dodać liczby w kolumnie C z liczbami w kolumnie E w następujący sposób:
C2+E21, C3+E20, ..., C21+E2. Wypisz wynik w kolumnie D jako formułę, tj. zawartość komórki wynikowej powinna mieć wartość „=C2+E21”.

Kod makra wygląda tak (czytamy gdzie pisać kod):

Pod Pętla_For()
"stała wskazująca granicę cyklu, czyli do jakiej wartości cykl powinien przebiegać"
Stała n=21
Do ja = 2 Do n
„Utwórz formułę ciągu i zapisz ją w komórce
Komórki(i, 4) = "=C" & CStr(i) & "+E" & CStr((n-i) + 2)
" kontynuacja podczas pracy w pętli
Następny i
"reszta kodu programu
napis końcowy

Przeanalizujmy napisany kod:

  • Stała n = 21 - opis stałej n o wartości 21, czyli liczba linii do przejścia Do;
  • Do ja = 2 Do n - i to licznik, który zmienia się o 1 z każdą iteracją pętli. Licznik zaczyna się od 2 i kończy, gdy i>n;
  • Komórki(i, 4) - komórka dedykowane arkusz, i to numer wiersza, 4 to numer kolumny, w której wyświetlany jest wynik. Zauważ, że nasz licznik i wskazuje numer wiersza arkusza Excel;
  • Dalej ja- operator do zamykania pętli i przenoszenia wskaźnika do dla. Wszystko pomiędzy Do oraz Następny działa w pętli;
  • CStr- funkcja, która konwertuje liczbę na tekst.

Do komórki przypisujemy formułę utworzoną w następujący sposób „=C” & CStr(i) & "+E" & CStr((n-i) + 2). Znak & - "sklejanie" znaków, linii. W rezultacie otrzymujemy formułę "=Cn+E((n - i) + 2)" gdzie n = 21, i jest licznikiem.
Straszny? Po prostu tak to wygląda :)

Wszystko. Po wykonaniu makra otrzymamy następującą kolumnę (podświetloną), a w każdej komórce formułę:

Przykład 2
Rozważmy teraz cykl ze wskazanym krokiem. Po obliczeniu ostatniego makra otrzymaliśmy trzy kolumny, teraz musimy odjąć D od kolumny E i wyświetlić formuły odejmowania w kolumnie F. Kod makra wygląda następująco:

Pod Loop_For_with_step()
Stała n=21
Do ja = n Do 2 krok -1
Komórki(i, 6) = "=E" & CStr(ID" & CStr(i)
Następny i
napis końcowy

W tym przypadku wszystko jest takie samo, tylko pętla teraz „biegnie” nie od 2, ale od 21 do 2 z krokiem (Krok) -1.
Wynik wykonania będzie następujący:

Cykl Do w języku VBA nie jest pojedynczą pętlą. W przyszłości rozważymy jeszcze kilka opcji pętli, które są niezbędne podczas pisania makr w Excelu.

Algorytm pętli For….Next pokazano na ryc. 5.28.

Licznik – dowolna numeryczna zmienna VBA, zwykle zmienna typu Integer lub Long.

początek - dowolne wyrażenie liczbowe i definiuje początkową wartość zmiennej Licznik.

Koniec - wyrażenie liczbowe określające ostateczną wartość zmiennej Licznik .

Sprawozdania – jeden, kilku lub żaden operator. Te instrukcje wykonują treść pętli. VBA wykonuje każdą z tych instrukcji za każdym razem, gdy wykonywana jest pętla.

Słowo kluczowe Następny

Licznik = licznik + StepSise

Rys.9.28. Dla….Algorytm następnej pętli

Słowo kluczowe Następny mówi VBA, że osiągnięto koniec pętli. Opcjonalna zmienna Counter po słowie kluczowym Next musi być tą samą zmienną Counter, która została określona po słowie kluczowym For na początku struktury pętli.

Składnia:

Dla licznika = od początku do końca

Podczas wykonywania pętliDoNastępny VBAprzebiega w następujący sposób:

Przypisuje reprezentowaną wartość gwiazda , zmienny Z przeciw .

Wykonuje wszystkie polecenia reprezentowane przez Sprawozdania dopóki nie osiągnie słowa kluczowego Następny . Słowo kluczowe Następny wskazuje VBA, że osiągnięto koniec treści pętli.

Zmienia zmienną Z przeciw według kwoty Rozmiar kroku (jeśli dołączone jest opcjonalne słowo Step) Jeśli Step nie jest zdefiniowany, VBA zwiększa zmienną licznika o 1.

Wraca do początku pętli i porównuje bieżącą wartość zmiennej Z przeciw z wartością reprezentowaną przez End. Jeśli wartość Z przeciw mniejsza wartość Koniec , VBA kontynuuje wykonywanie od pierwszej instrukcji po słowie kluczowym Następny .

9.2.4. Wejście-wyjście tablic jednowymiarowych i dwuwymiarowych

Tablica (szyk) to zbiór zmiennych, które mają wspólną nazwę i typ podstawowy. Tablica to wygodny sposób przechowywania wielu powiązanych elementów danych w jednym kontenerze, co zapewnia większą wygodę i wydajność programowania. Wszystkie elementy danych przechowywane w tablicy muszą być tego samego typu.

Tablica umożliwia przechowywanie i manipulowanie wieloma elementami danych za pomocą jednej zmiennej. Oprócz zmniejszenia całkowitej liczby różnych nazw zmiennych, które należy śledzić, kolejną ważną korzyścią z używania tablic jest to, że można używać pętli do łatwego przetwarzania różnych elementów tablic. Łącząc tablice i struktury pętli (zazwyczaj For….Next) możesz napisać niewielką liczbę instrukcji przetwarzających duże ilości danych. Wykonanie tych samych zadań przy użyciu poszczególnych zmiennych może wymagać napisania setek instrukcji.

Wymiar tablicy

Języki programowania zwykle używają tablic jednowymiarowych i wielowymiarowych, z których niektóre opisują stosunkowo proste obiekty, a inne opisują bardziej złożone obiekty.

Tablice jednowymiarowe

Przykład tablicy jednowymiarowej przedstawiono w tabeli 9.9.

Tabela nr 9.9

W programowaniu powszechnie stosuje się numerowanie od zera.

Aby uzyskać dostęp do danych przechowywanych w określonym elemencie tablicy, należy podać nazwę tablicy, po której następuje liczba, zwana indeksem elementu. Indeks jest ujęty w nawiasy. Na przykład, jeśli tablica w tabeli 1.1 nosi nazwę DoubleArray, następująca instrukcja przypisuje liczbę 45 do DoubleAny.

PodwójneAny = Podwójna tablica (3)

W tej instrukcji liczba 3 jest indeksem tablicy. Ponieważ numeracja elementów zaczyna się od zera, element, do którego odwołuje się operator, jest w rzeczywistości czwartym elementem tablicy DoubleArray.

Podczas wykonywania instrukcji DoubleArray VBA wybiera wartość 45 i przechowuje tę wartość w zmiennej DoubleArray.

Ten sam operator może być użyty podczas przechowywania danych w tablicy:

Podwójna tablica (5)=12.

Po wykonaniu tej instrukcji VBA umieszcza wartość 12 w określonym elemencie tablicy, zastępując poprzednią zawartość tego elementu.

Tablice jednowymiarowe są powszechnie używane do reprezentowania różnych list danych.

Tablice wielowymiarowe

Gdy konieczne jest przedstawienie tabel danych uporządkowanych w wiersze i kolumny, wykorzystuje się do tego wielowymiarowe tablice.

W tablicy dwuwymiarowej adres każdej komórki składa się z dwóch liczb: numeru wiersza (pierwszy indeks) i numeru kolumny (drugi indeks). W VBA można tworzyć tablice zawierające do 60 wymiarów.

Jeśli liczba elementów w tablicy się nie zmienia, to taka tablica nazywana jest statyczną.

Tablice statyczne i dynamiczne

Jeśli możesz zmienić liczbę elementów w tablicy podczas wykonywania programu VBA, to takie tablice nazywane są dynamicznymi. Operator ReDim służy do zmiany rozmiaru tablicy dynamicznej.

VBA utrzymuje zarezerwowany obszar pamięci dla wszystkich elementów tablicy, o ile istnieje zmienna typu tablicy. Takie tablice są nazywane statycznymi, ponieważ liczba elementów w tablicy nie zmienia się.

OperatorOpcja Baza

Zazwyczaj VBA używa tablic liczonych od zera. Instrukcja Option Base pozwala określić 0 lub 1 jako domyślne źródło dla indeksów tablicowych. Jeśli operator Opcja Baza nieużywane, VBA rozpoczyna numerację indeksów od 0 (domyślnie). Musisz umieścić instrukcję Option Base w obszarze deklaracji modułu przed zadeklarowaniem jakichkolwiek zmiennych, stałych lub procedur. Nie można umieścić instrukcji Option Base wewnątrz procedury. W module można mieć tylko jedną instrukcję Option Base.

Składnia:

Opcja Baza 0|1

Deklaracja tablicy

Deklarowanie tablicy z operatorem Ciemny ma następującą składnię.

Składnia:

NazwaZmV()

Dim VarName ( górne, górne]….)[ Jak rodzaj],

VarName to dowolna nazwa tablicy, która spełnia zasady VBA dotyczące nazewnictwa identyfikatorów.

Indeksy dolne - wymiar tablicy.

Jak typ - typ danych.

Lower - dolna granica wartości indeksu.

Upper - górna granica wartości indeksu.

Typ - typ danych

Jeśli pominiesz typ, wszystkie elementy tablicy będą miały typ Variant. VBA inicjuje elementy tablic numerycznych do zera, a elementy tablic ciągów do pustych ciągów.

Dim str_array (1 do 100) As String

Dim wariant_tablicy()

Dim str_Mnożenie (0 do 15, 0 do 15) As String

Korzystanie z tablic

Aby uzyskać dostęp do elementu tablicy, należy określić nazwę tablicy, po której następuje wartość indeksu ujęta w nawiasy.

Dostęp do elementu tablicy ma następującą składnię.

Składnia.

arrayName (validIndex1, ....)

validIndex to nazwa tablicy.

validIndex1 to poprawna wartość indeksu dla pierwszego wymiaru tablicy.

validIndex2 to poprawna wartość indeksu dla drugiego wymiaru tablicy.

Musisz podać wartość indeksu dla każdego wymiaru tablicy za każdym razem, gdy uzyskujesz dostęp do dowolnego elementu tablicy.

We/Wy tablic jednowymiarowych

Wprowadzając tablicę jednowymiarową, musisz kolejno wprowadzać 1., 2. itd. elementy tablicy, podobnie wykonaj dane wyjściowe. Aby wprowadzić lub wyprowadzić tablicę, musisz zorganizować pętlę. Najwygodniej jest użyć algorytmu wykorzystującego pętlę bezwarunkową do wprowadzania i wyprowadzania tablicy jednowymiarowej.

Algorytm wejścia/wyjścia dla tablicy jednowymiarowej pokazano na rysunku 5.29.

Procedura jest wyjaśniona poniżej.

Sub Array() — nazwa procedury.

Dim Mas (5) As Integer - zadeklarowana tablica jednowymiarowa z 5 elementami typu integer.

Dim s As String - zadeklarowana zmienna robocza do ostatecznego wyprowadzenia danych z tablicy w oknie dialogowym. As String to typ danych w zmiennej do przechowywania.

For i = 1 To 5 – procedura w pierwszej pętli For….Next pobiera liczby całkowite od 1 do 5 i umieszcza je w tablicy.

Mas (i) = InputBox (i) — wprowadź liczbę całkowitą dla i-tego elementu.

Dalej - przejście do drugiego cyklu (elementy tablicy są wprowadzane do ciągu i wyświetlane w oknie dialogowym za pomocą operatora MsgBox).

Dla i = 1 do 5 - elementy w rzędzie od 1 do 5.

s = s & Masa(i) & „ ;” - tworzenie ciągu z elementów tablicy. Tablica jest wyświetlana w jednym wierszu. Elementy tablicy są oddzielone znakiem „;”.

MsgBox s - dane wyjściowe wcześniej wprowadzonej tablicy.

Rys.5.27. Jednowymiarowy algorytm we/wy

Ryż. 9.29. Algorytm i procedura wejścia-wyjścia tablicy jednowymiarowej

Wejście/wyjście tablicy 2D

Algorytm i procedurę wejścia i wyjścia dwuwymiarowej tablicy pokazano na rysunku 5.30.

Opis tej procedury:

Sub Array () - nazwa procedury

Deklaracja zmiennych używanych w tej procedurze:

Dim Mas (5, 5) Jako Integer - zadeklarowana dwuwymiarowa tablica z 5 kolumnami i pięcioma wierszami, typ liczb to liczby całkowite.

Dim s As String - zadeklarowana zmienna robocza do ostatecznego wyprowadzenia danych z tablicy w oknie dialogowym. As String - typ danych w zmiennej do przechowywania

Dalej i - koniec operacji przypisywania zmiennych

Wprowadzanie elementów tablicy do pamięci komputera:

Dla i = 1 do 5 - wejście odbywa się z pierwszego elementu pierwszego wiersza, następnie z drugiego itd.

Dla j = 1 do 5 do końca pierwszego wiersza, potem od pierwszego elementu drugiego wiersza i tak dalej.

Mas(i,j) = InputBox(i,j) – operator do wprowadzania elementów tablicy do pamięci komputera

Ryż. 9.30. Algorytm i procedura wejścia-wyjścia tablicy dwuwymiarowej

Algorytmy porządkowania tablic

Jako przykład przedstawiamy algorytm i procedurę sortowania tablicy jednowymiarowej metodą „bańki”

Wyjście elementów wprowadzonej tablicy z pamięci komputera:

Dla i = 1 do 5 - wyjście realizowane jest podobnie jak wejście

s = s & Mas(i,j) & “ ; ”

s = s & Chr (13) - line feed (wyjście nie w jednej linii, ale w kilku, jak w tablicy wejściowej)

Next i - koniec instrukcji For….Next

MsgBox s - wyświetla w oknie dialogowym poprzednio wprowadzoną tablicę

End Sub - koniec procedury.

Instrukcje pętli

W VBA Istnieją dwa główne typy pętli pętle z licznikiem (parametryczne) i pętle z warunkiem (iteracja).

Pętle z licznikiem są używane w przypadkach, gdy konieczne jest wykonanie jakiejś akcji określoną liczbę razy.

Pętle warunkowe są używane, gdy jakaś akcja w programie musi być powtarzana, aż do spełnienia określonego warunku.

Cykle z parametrem W następnym

Struktura cyklu:

Do Parametr pętli = wartość_początkowa Do Wartość_końcowa

[Krok Krok]

Operatorzy

[wyjdź na]

Następny [Parametr_pętli]

gdzie For słowo kluczowe VBA (od), oznaczający początek cyklu;

loop_parameter zmienna zdefiniowana jako licznik pętli;

Start_Value liczba określająca początkową wartość parametru cyklu;

Do słowa kluczowego VBA (przed) dzieleniem

Start_Value i End_Knowledge;

End_Value liczba określająca wartość parametru pętli,

Kiedy cykl się kończy;

Słowo kluczowe kroku VBA (krok) używany do

Przypisania kroków pętli, argument opcjonalny;

Krok to liczba określająca krok cyklu, tj. wartość, do której

Zwiększa (lub zmniejsza) wartość parametru

Cykl na każdym kroku. Ta liczba może być

negatywny;

Wyjdź dla Operator wczesnego wyjścia z pętli (opcjonalnie);

Następny słowo kluczowe VBA (następny) oznaczający

Koniec cyklu.

Praca w cyklu:

Krok 1 Najpierw określany jest parametr pętli, a wartości początkowe i końcowe tej zmiennej są obliczane i zapisywane.

Krok 2 Parametr pętli ma przypisaną wartość początkową.

Krok 3 Wartość początkowa parametru pętli jest porównywana z wartością końcową.

Jeśli parametr pętli jest większy niż wartość końcowa, program natychmiast wychodzi z pętli i przechodzi do wiersza kodu następującego po pętli.

Krok 4 Wykonywane jest ciało pętli.

Krok 5 Po wykonaniu treści pętli następna wartość jest przypisywana do parametru pętli. Przejdź do kroku 3.

Notatka.

1. Jeśli słowo kluczowe jest używane krok , wtedy parametr cyklu zmienia się zgodnie z liczbą określoną po tym słowie. Jeśli słowo krok brak, wartość kroku jest równa jeden.

Przykład 1

Dla I = 0 do 10 Krok 2 (Wartość I wzrośnie o 2)

2. Dla…Następna pętla można zakończyć przedwcześnie po osiągnięciu dowolnego warunku. Aby to zrobić, we właściwym miejscu pętli należy umieścić operator Wyjdź dla .

Przykład 2

Dim S jako liczba całkowita

Dim j jako liczba całkowita

S=2

Dla j = 1 do 10

S = S + j

Jeśli S > 6 Wtedy

Wyjdź dla (Wyjdź z pętli, jeśli wartość S > 6)

Zakończ, jeśli

Następny j

Skrzynka wiad.(S)

Pętle warunkowe (iteracyjne)

Jeżeli jakaś akcja (kilka akcji) musi być wykonana wiele razy, ale nie wiadomo z góry ile razy i zależy to od jakiegoś warunku, należy użyć pętli z warunkiem wstępnym lub końcowym.

W VBA istnieją dwa główne cykle ZRÓB...PĘTLA z warunkiem wprowadzonym przez słowo kluczowe Podczas gdy , oraz z warunkiem wprowadzonym przez słowo kluczowe Aż do . Oba mogą być warunkiem wstępnym lub końcowym.

Składnia:

gdzie Do słowo kluczowe (do);

Podczas gdy słowo kluczowe (jeszcze);

Aż do słowo kluczowe (o ile);

pętla słowo kluczowe wskazujące na koniec cyklu;

<условие>wyrażenie logiczne, którego prawdziwość jest sprawdzana

Na początku każdego wykonania ciała pętli;

<тело_цикла>dowolna sekwencja operatorów;

Czy...Podczas budowy brzmi: wykonaj, gdy warunek jest spełniony. W budowie Czy … dopóki przez

Do… Dopóki konstrukt brzmi: rób dalej, aż warunek zostanie spełniony. W budowie Rób dopóki aby zwiększyć krok, należy napisać specjalny operator, ponieważ w nim, w przeciwieństwie do projektu Do , nie odbywa się to automatycznie.

Warunek zapisany po słowie kluczowym Aż do , jest sprawdzane na końcu każdej iteracji (po wykonaniu ciała pętli). Zauważ, że nie działa tutaj tak samo jak w pętli Podczas gdy . Jeśli warunek jest prawdziwy ( Prawdziwe ), a następnie pętla się kończy. Jeśli warunek nie jest spełniony (jest fałszywy Fałszywy ), następnie treść pętli jest wykonywana ponownie.

Przykład 1

Sformułowanie problemu. Oblicz sumę szeregu skończonego za pomocą procedury podprogramu.

Technologia realizacji zadań:

1. Dane początkowe: ja Z

Wynik: S  R .

2. Wpisz w standardowym module projektu następującą procedurę użytkownika za pomocą pętli z warunkiem wstępnym podczas gdy:

podsumowanie()

Dim S jako liczba całkowita

Dim i jako liczba całkowita

S=0

ja = 1

Zrób póki ja<= 10

S=S+i^2

ja = ja + 1

pętla

Skrzynka wiad.(S)

napis końcowy

3. Wpisz w standardowym module projektu następującą procedurę użytkownika za pomocą pętli z warunkiem wstępnym Aż do :

podsumowanie()

Dim S jako liczba całkowita

Dim i jako liczba całkowita

S=0

ja = 1

Czy Do > 10

S=S+i^2

ja = ja + 1

pętla

Skrzynka wiad.(S)

napis końcowy

4 Wpisz w standardowym module projektu następującą procedurę użytkownika, używając pętli z warunkiem końcowym podczas gdy:

podsumowanie()

Dim S jako liczba całkowita

Dim i jako liczba całkowita

S=0

ja = 1

S=S+i^2

ja = ja + 1

Pętla, gdy ja<= 10

Skrzynka wiad.(S)

napis końcowy

5 Wpisz w standardowym module projektu następującą procedurę użytkownika, używając pętli z warunkiem końcowym Aż do :

podsumowanie()

Dim S jako liczba całkowita

Dim i jako liczba całkowita

S=0

ja = 1

S=S+i^2

ja = ja + 1

Pętla Do i > 10

Skrzynka wiad.(S)

napis końcowy

DZWON

Są tacy, którzy czytają tę wiadomość przed tobą.
Subskrybuj, aby otrzymywać najnowsze artykuły.
E-mail
Nazwa
Nazwisko
Jak chciałbyś przeczytać The Bell?
Bez spamu