Stránka 1 z 1

VLoopUP VBA skorektnenie príkazu  Vyřešeno

Napsal: 16 kvě 2018 14:17
od tsibee
Ahojte,

prosím mrkol by sa mi niekto na Makro?
Chcel by som pouzit na priradenie Sviatku k dátumu.
Cize ak v stlpci A je datum na ktorý pripada sviatok (zoznam sviatkov D2:E4 - momentalne vymysleny)tak vedla dátumu zapise "sviatok". Pouzil som worksheetFunkciu VlookUp, ale pada mi to na chybe. Pokial sviatok najde, tak OK, akonahle na dany dan sviatok nepripadne, tak sa makro zastavi.

Sub svaitok()

i = 1
While i < 31
Cells(1 + i, 2) = Application.WorksheetFunction.VLookup(Cells(1 + i, 1), Range("D2:E4"), 2, False)
i = i + 1
Wend

End Sub

Vopred vdaka za pomoc :).

Re: VLoopUP VBA skorektnenie príkazu

Napsal: 16 kvě 2018 15:08
od atari
Řešení má nevýhodu, že v případě, že není splněno hledané kritérium, funkce vrátí chybovou hodnotu #NENI_K_DISPOZICI. Toto můžete obejít doplněním funkce SVYHLEDAT o funkci IFERROR - viz: http://office.lasakovi.com/excel/funkce ... kce-excel/

Re: VLoopUP VBA skorektnenie príkazu

Napsal: 16 kvě 2018 16:54
od Grimm
Ahoj, sice nechápu proč zrovna tuto věc chceš řešit pomocí makra, ale budiž.
Do kódu doplň dva řádky:

On Error Resume Next = při chybě dovolí přeskočit na další řádek a pokračovat v kódu
On Error GoTo 0 = Vypne přeskočení na další řádek v případě chyby

Kód: Vybrat vše

Sub svaitok()
 
i = 1
While i < 31
On Error Resume Next
Cells(1 + i, 2) = Application.WorksheetFunction.VLookup(Cells(1 + i, 1), Range("D2:E4"), 2, False)
On Error GoTo 0
i = i + 1
Wend
End Sub

Re: VLoopUP VBA skorektnenie príkazu

Napsal: 16 kvě 2018 17:10
od tsibee
ďakujem, toto je len medzičlánok (napája sa to na ďalšie) preto som to chcel riešiť Makrom :).