VLoopUP VBA skorektnenie príkazu

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

Zamčeno
tsibee
nováček
Příspěvky: 34
Registrován: 18 dub 2018 19:09

VLoopUP VBA skorektnenie príkazu

Příspěvek 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 :).
Přílohy
sviatok.xlsm
(16.44 KiB) Staženo 25 x
Uživatelský avatar
atari
Level 6
Level 6
Příspěvky: 3377
Registrován: 24 říj 2008 19:50

Re: VLoopUP VBA skorektnenie príkazu

Příspěvek 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/
Uživatelský avatar
Grimm
Level 2
Level 2
Příspěvky: 165
Registrován: 30 zář 2017 20:50

Re: VLoopUP VBA skorektnenie príkazu

Příspěvek 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
tsibee
nováček
Příspěvky: 34
Registrován: 18 dub 2018 19:09

Re: VLoopUP VBA skorektnenie príkazu

Příspěvek od tsibee »

ďakujem, toto je len medzičlánok (napája sa to na ďalšie) preto som to chcel riešiť Makrom :).
Zamčeno

Zpět na „Kancelářské balíky“