IZBORNIK HOME FORUM ACCESS EXCEL WORD  
 

HOME

   

3

Naredbe

3.1.1 IF naredba
3.1.2 SELECT CASE naredba
3.1.3 GoTo naredba
   
3.2

LOOP - Petlje

3.2.1 For-Next petlja
3.2.2 Do While petlja
3.2.3 Do Until petlja
3.3

Niz, String, Function

3.3.1 Nizovi
3.3.2 Stringovi
3.3.3 Rad sa slovima č, ć, š, đ, ž
3.3.4 Like operator
3.3.5 Funkcija Format
3.3.6 Predefinirani Formati za Datum i Vrijeme
3.3.7 Numerički formati
3.3.8 Korisnički Formati za Datum i Vrijeme
   
 

MICROSOFT EXCEL 2003 - VBE i VBA - NAREDBE i Kontrola toka u VBA, Do While loop (petlja) naredba u VBA

Naredbe i Petlje u VBA u Excelu
(
Kontrola toka programa u VBA)

Search This Web Site

Adsense sponzor






Do Until petlja (loop) u VBA - Kontrola toka programa u VBA

Ovaj tip petlje je vrlo sličan Do While petlji, sa tom razlikom da se Do Until petlja izvršava sve dok se ne ispuni određeni Uvjet. Sintaksa ove petlje također dozvoljava provjeru Uvjeta petlje na njenom početku i na kraju.

Do Until Uvjet
Upute
Loop

ili

Do
Upute
Loop Until Uvjet

Petlja se u oba oblika izvršava sve dok Uvjet nije ispunjen. Kada se Uvjet ispuni, izlazi se iz petlje i nastavlja sa prvom slijedećom instrukcijom. Kod oblika sa provjerom Uvjeta na kraju, petlja se izvršava bar jedanput.

Uočite primjer sa zbrajanjem brojeva manjih od 100 koristeći oba oblika Do Until petlje.

S = 0: I = 1
Do Until I = 100
S = S + I
I = I + 1
Loop
S = 0: I = 0
Do
I = I + 1
S = S + I
Loop Until I = 99

Forsirani izlazak iz Do Until petlje se također vrši naredbom Exit Do.


Pogledajte još jedan primjer Do Until petlje koja pronalazi prvu praznu ćeliju u stupcu A

Sub Doo_Until() 'kolona B
'Application.ScreenUpdating = False

Dim ws As Worksheet, i As Long, res As Double, aaa As Double
aaa = Timer
'BROJ SEKUNDI OD PONOCI DO SAD'**************
Set ws = Sheets(1)

i = 1
Do Until ws.Cells(i, 2) = ""
i = i + 1
Loop

ws.Cells(i, 2).Select
ws.Cells(i, 2) = "Do Until-Loop"

res = Timer - aaa
MsgBox FormatNumber(res, 2) & " sekudi"

End Sub


Da bi uočili razliku u brzini rada petlji skinite ove files (*.xls i *.xlsm)  i isprobajte (DOWNLOAD).

Uočite koliko se brže izvršava petlja End Up

Sub End_Up() 'kolona B
'Application.ScreenUpdating = False

Dim xy As Long, res As Double, aaa As Double
aaa = Timer
'BROJ SEKUNDI OD PONOCI DO SAD

xy = Sheets(1).Range("B65536").End(xlUp).Row + 1

Cells(xy, 2).Select
Selection.Value = "End (xlUp)"

res = Timer - aaa
MsgBox FormatNumber(res, 2) & " sekudi"

End Sub
(autor End Up petlje neptuncokg) 
Dakle treba koristiti petlje DO samo kada se mora a u suprotnom koristiti petlje END

Adsense sponzor




 

Brzine izvršavanja petlji

Excel 2003 sa 65530 redova

AAA - Do While-Loop => 0,53 sec
BBB - Do Until-Loop => 0,52 sec

AAA - Do Loop-While => 0,52 sec
BBB - Do Loop-Until => 0,50 sec

AAA - End DOwn => 0,05 sec
BBB - End Up => 0,05 sec
Excel 2007 sa 1048576 redova

AAA - Do While-Loop => 7,91 sec
BBB - Do Until-Loop => 8,01 sec

AAA - Do Loop-While => 7,81 sec
BBB - Do Loop-Until => 7,77 sec

AAA - End Down => 0,50 sec
BBB - End Up => 0,40 sec

(prvi primjer uz dozvolu prenesen iz materijala sa predavanja prof. S.Đukanović)

Adsense sponzor




Adsense sponzor



Ova web stranica koristi COOKIES - COPYRIGHT - 2011 - IvanC - ic.ims.hr