Nachádzate sa tu

Domov

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. 

 

Reklamné odkazy

kosime.sk
Kosenie trávy, čistenie pozemkov a záhradnícke práce
 
 
Chipmo.sk
Dizajnové doplnky pre dom a záhradu