Pętla
Do Until
Przykłady opisane w tej lekcji dostępne są w arkuszu Excela VBA.xls, tylko ich samodzielne przerobienie
daje gwarancję zapamiętania tej lekcji.
Przykłady dla wszystkich lekcji szkolenia Excel 2003: ExcelSzkolenie.pl
Cwiczenia Excel 2003.zip
Pętla Do Until jest bardzo podobna do Do While, różnica
polega na tym że Do Until będzie działać tak długo aż warunek zostanie
spełniony = ””, a Do Until tak długo jak warunek jest spełniony, w poprzednim
przykładzie tak długo aż zawartość komórki była różna od ‘pustej’ <>””.
Składnia:
Do Until [warunek]
[instrukcje]
Loop
Przykład 1.
(Arkusz: ‘Do Until’, Moduł: ‘Do_Until’)
Poniżej przedstawiłem kod, który robi dokładnie to samo co
makro opisane w poprzedniej lekcji, ale używa pętli Do Until.
Sub Petla_Do_Until()
Do Until ActiveCell.Value =
"" 'warunek
pętli rób tak długo aż napotkasz pustą komórkę
If Selection.Interior.ColorIndex = 3
Then 'istrukcja warunkowa If: jeżeli komórka ma kolor czerwony
ActiveCell.Offset(0,
1).Range("A1").Select 'przejdź o
jedną komórkę w prawo
ActiveCell.Value =
"wybrany" 'wpisz
w aktywnej komórce tekst "wybrany"
ActiveCell.Offset(0,
-1).Range("A1").Select 'wróć jedną
komórkę w lewo
End If 'koniec instrukcji warunkowej If
ActiveCell.Offset(1,
0).Range("A1").Select 'przejdź o
jedną komórkę w dół
Loop 'koniec pętli: wróć do linijki z Do Until
End Sub
Przykład 2.
(Arkusz: ‘Do Until’, Moduł: ‘Do_Until’)
W tym przykładzie chciałbym zaprezentować instrukcję Exit
Do, która pozwala na wyjście z pętli.
W tabeli znajdującej się w kolumnach F i G, nasz inwestor
musiał przerwać uaktualnianie tabeli i wprowadził w komórce tekst „dalej nie”.
Exit Do jest zazwyczaj łączone z If, aby wyjście z pętli
następowało po spełnieniu założonego warunku.
Sub Petla_Do_Until_z_instrukcja_Exit_Do()
Do Until ActiveCell.Value =
"" ‘warunek
pętli rób tak długo aż napotkasz pustą komórkę
If Selection.Interior.ColorIndex = 3
Then 'istrukcja warunkowa If: jeżeli komórka ma
kolor czerwony
ActiveCell.Offset(0,
1).Range("A1").Select 'przejdź o
jedną komórkę w prawo
ActiveCell.Value =
"wybrany" 'wpisz
w aktywnej komórce tekst "wybrany"
ActiveCell.Offset(0,
-1).Range("A1").Select 'wróć jedną
komórkę w lewo
End If 'koniec instrukcji warunkowej If
ActiveCell.Offset(1,
0).Range("A1").Select 'przejdź o
jedną komórkę w dół
If ActiveCell.Value = "dalej
nie" Then 'Jeżeli w komórce wpisane jest „dalej nie” wtedy
Exit Do ‘zakończ pętle
End If 'koniec warunku If
Loop 'koniec pętli: wróć do linijki z Do Until
End Sub
Szkolenie Excel 2003 Szkolenie Excel 2007