< návrat zpět
MS Excel
Téma: vba vlookup
Zaslal/a wh1 28.5.2014 15:19
Ahoj,
rád bych požádal o radu ohledně zapsání vzorce:
Cells(k, y).Formula = "=VLOOKUP(B:B,f & !A:A & ,1,0)"
kdy "f" je měnící se hodnota názvu listu
Díky moc nevim si už rady :/
celý zápis zde:
x = 1
y = 3
f = Cells(x, 1).Value
Do While Cells(x, 1) <> ""
k = 1
Do While Cells(k, 2) <> ""
Cells(k, y).Formula = "=VLOOKUP(B:B," & f & "!A:A"" ,1,0)"
k = k + 1
Loop
y = y + 1
x = x + 1
Loop
End Sub
Pavlus(28.5.2014 15:46)#019727 Nejdříve se podívej na syntaxi funkce VLOOKUP a na to k čemu slouží.
Na první místě je hledaný výraz, což "B:B" určitě není. Také nedává smysl hledání hodnoty v prvním sloupci, jelikož výsledkem je pak právě ona hledaná hodnota...
P.
citovat
wh1(28.5.2014 15:50)#019728 funkci svyhledat znám velice dobře :).
Smysl mi to dává ...porovnávám hodnoty ze sloupce B (B:B) s hodnotami z listů (a,b,c dejme tomu) ve sloupci A (A:A) kdy dostanu informaci jestli jsou všechny údaje na listech a,b,c,d, obsaženy.
btw funce i makro mi funguje správně pokud tam nechci dostat název listu přes proměnou. To byla má otázka a žádost o radu
citovat
Pavlus(28.5.2014 16:01)#019729 Aha, toto použití jsem nečekal ;-).
V tom případě ti tam chybí jeden ampersand...
P.
Př.:Cells(k, y).Formula = "=VLOOKUP(B:B," & f & "!A:A" & " ,1,0)"citovat
marjankaj(28.5.2014 16:26)#019731 Alebo takto?
Cells(k, y).Formula = "=VLOOKUP(B:B," & f & "!A:A ,1,0)"
citovat
AL(28.5.2014 16:56)#019733 @wh1:
funkci svyhledat znám velice dobře :)
Zas tak dobre asi nie. Prvým argumentom musí byť hodnota (myslí sa tým jednotlivá hodnota, napr. z bunky), ty sa do nej snažíš dostať pole (celý stĺpec). Pokiaľ ti to, ako tvrdíš, funguje, tak to pokladám za zázrak a neviem prečo si Pavlus nestál za svojim
citovat
wh1(28.5.2014 16:57)#019734 Diky tohle funguje ...a pritom takova blbost :). Jen mi tu vyskocil dalsi problem :/. Kdyz zapisu vzorec standardne oznaceni listu je v apostrofech - 'list1'! ale kdyz to tam caknu z promeny tak to mam bez apostrofu a excel s tim ma problem vyskoci mi nabidka na vybrani sesitu se zminovanym listem ...nevite nekdo?
citovat
AL(28.5.2014 17:04)#019735 Kdyz zapisu vzorec standardne oznaceni listu je v apostrofech - 'list1'!
Ďalšia nepresnosť. Nájdeš rozdiel?
=Sheet2!C5
='Sheet 3'!C6
Prečo tam asi sú v druhom prípade apostrofy a v prvom nie?
Ako dostať do formule v kóde apostrofy?
citovat
cmuch(28.5.2014 17:05)#019736 Do apostrofů to vkládá nazvy listů s mezerou, přidej si apostrof před a za uvozovky v tom vzorci ve VBA.
citovat
wh1(28.5.2014 17:05)#019737 @AL: kluci se mi snazite dostat do nejaky schyzi bo co :). Svyhledat znam jak svoje boty :). To mi chces rict ze pokud mas list 1 a list 2 a das vyhledat list1A:A,list2A:B,2,0 tak to vyhodi chybu :D ...myslim ze ne hele
citovat
cmuch(28.5.2014 17:10)#019738 Si myslím, že to používá na porovnání hodnot v řádcích na obou listech.
citovat