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