Načítání hodnot proměnných z buněk v makrech
S tímto tématem se setkáte na našich kurzech ExcelTown.
Aktuálně: kurzy můžete absolvovat jak online, tak prezenčně.
V tomto článku se podíváme na jedno základní, užitečné a jednoduché téma z oblasti VBA - načítání hodnot proměnných z buněk.
Příklad
Řekněme, že mám v buňce A1 číslo (nebo text nebo cokoliv), které chci načíst do proměnné "a". Proto, abych s ním mohl nějak počítat nebo provádět libovolné psí kusy.
Otázka tedy je, jak tuto hodnotu vzít z buňky a uložit ji do hodnoty.
Návod
Existuje několik způsobů (i jiné než uvádím tady), a použiji je podle situace.
Načtení proměnné "a" na základě názvu listu a názvu oblasti
a = Worksheets("List1").Range("a1").Value
Načtení proměnné "a" z aktivního listu na základě názvu oblasti
a = ActiveSheet.Range("a1").Value
Načtení proměnné "a" z aktivního listu na základě souřadnic buňky
a = ActiveSheet.Cells(1, 1).Value
Načtení proměnné "a" z aktivní buňky
a = ActiveCell.Value
Příklad makra
Například toto makro zařídí, že excel pípne tolikrát, jak vysoké je číslo v buňce A1.
Neříkám, že zrovna bez tohoto makra nepřežijete, ale jako příklad je to snad OK.
'Název makra a jeho začátek Sub nacitanihodnot() 'To, co je v bunce A1, se uloží jako proměnná "a" a = Worksheets("List1").Range("a1").Value 'Zacatek cyklu - ten se bude opakova, dokud nebude "b" (to zacina na nule) stejně velké jako "a" Do Until b = a '"b" se zvetsi o jednicku b = b + 1 'Pipnuti Beep 'Poseckani jednu vterinu - aby pipnuti nesplynula do jednoho Application.Wait (Now + TimeValue("0:00:01")) 'Navrat na zacatek cyklu - pokud tedy uz neni "a" stejne velke jako "b" Loop 'Konec makra End Sub
S tímto tématem se setkáte na našich kurzech ExcelTown.
Aktuálně: kurzy můžete absolvovat jak online, tak prezenčně.
Díky moc. Přesně jak píšeš, pípat sice nepotřebuji, ale ta myšlenka se mi hodí pro něco jiného, takže super.
Dobrý den, ale co když chci do proměnné načíst ne jen jednu buňku “A1” ale řekněme více hodnot z buněk “A1” až “A50” ? nebo “A1:C6” ?
Děkuji
Michal – v tom případě musíte hodnoty načítat do polí, viz:
http://exceltown.com/navody/makra/definice-pole/
Děkuji