Pętla Do Until

 

Przykłady opisane w tej lekcji dostępne są w arkuszu Excela VBA.xlsm, tylko ich samodzielne przerobienie daje gwarancję zapamiętania tej lekcji.

Przykłady dla wszystkich lekcji szkolenia Excel 2013: ExcelSzkolenie.pl Cwiczenia Excel 2013.zip

 

Ta lekcja może być obejrzana lub przeczytana poniżej.

Film wygląda najlepiej jeśli będzie odtwarzany w rozdzielczości 720p HD, rozdzielczość można zmienić dopiero po uruchomieniu filmu klikając na ikonie trybika  która pojawi się w prawym dolnym rogu poniższego ekranu. Po kilku sekundach od zmiany obraz wyostrzy się.

 

 

 

 

 

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 While tak długo jak warunek jest spełniony, w poprzednim przykładzie tak długo jak 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                  'instrukcja 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                 'instrukcja 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