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.
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
Super, tri dny jsem hledal jak vlozit cislo z bunky do promenne v makru a tady to je. Klobouk dolu OK
OdpovědětVymazata = ActiveSheet.Range("V4").Value
Dobrý den,
OdpovědětVymazatměl bych dotaz k tomuto článku, zda je možné nějak do připojení na SQL v textu příkazu použít odkaz na buňku např. v druhém listu?
Např.něco takového : SELECT Jmeno FROM Zamestnanci WHERE Jmeno = List2.A1
?
Mám MS Excel 2007
Předem děkuji.
Dobrý den, v tomhle neporadím, podobný problém jsem zatím neřešil.
OdpovědětVymazat