Nachádzate sa tu
14.VBA Do Until, Do While Loop
Do Until resp. Do While Loop predstavuje iný spôsob ako vytvoriť slučku v programe.
V prípade For loop zadefinujeme presný počet cyklov, koľko krát chceme aby kód vo vnútri slučky zbehol.
V prípade Do While,Until nastavíme Loop tak, že slučka bude bežať, pokial nebude splnená konkrétna podmienka. V nasledujúcom príklade napíšeme Loop, ktorý podfarbí každý párny riadok riadok tabuľky na zeleno, a každý nepárny na čierno, a zároveň zmení farbu písma na bielo. Loop bude bežať do vtedy pokiaľ kód nepríde na koniec tabuľky.
Syntax:
Do Until (zadaj podmienku ktorá sa bude overovať)
‘Sem príde kód
Loop
Príklad:
Sub DoUntilLoop()
‘vyber bunku A1
ThisWorkbook.Sheets("Sheet1").Activate
ActiveSheet.Cells(2, 1).Select
'nastav Do Until (pokračuj pokial) nie je splnená určitá podmienka,
'v tomto pripade je podmienka nastavená na hodnotu aktívnej bunky = "" čo znamená že bunka je prázdna
'loop bude bežať dovtedy pokiaľ hodnota aktívnej bunky nebude prázdna
Do Until ActiveCell.Value = ""
'nastav farbu pozadia bunky na tmavo zelenú - 43 je kód pre zelenú farbu vo VBA ColorIndex
ActiveCell.Interior.ColorIndex = 43
'Posuň kurzor o jeden riadok dole
ActiveCell.Offset(1, 0).Select
'nastav čiernu farbu pozadia (v tomto prípade ako RGB) a farbu písma na bielo
ActiveCell.Interior.Color = RGB(10, 2, 2)
ActiveCell.Font.ColorIndex = 2
'posuň kurzor o riadok dole
ActiveCell.Offset(1, 0).Select
' vráť sa na začiatok loopu a zvaliduj loop podmienku. Ak hodnota aktívnej bunky nie je prázdna pokračuj v loope, inak pokračuj v kóde za loopom
Loop
'sem môže prísť akékoľve pokračovanie skriptu
End Sub
Jediný rozdiel medzi Do Until a Do While Loop je v definovaní podmienky.
Do Until znamená rob Pokiaľ nie je splnená určitá podmienka. Pokiaľ platí,že hodntota bunky nie 7 pokračuj v Loope. Keď bunka nadobudne hodnotu 7 zastav loop.
Do While znamená rob Dovtedy, pokiaľ platí určitá podmienka. Pokiaľ platí, že hodnota bunky je 7 pokračuj v loope. Keď bunka nadobudne inú hodotu ako 7 zastav loop.