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

4 Komentářů

  1. 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.

  2. 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

Komentáře není možné přidávat