Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:
... jak přečíst údaj z buňky ... - doplněno 31.7.2015 a 29.11.2018
Opravdu víte co potřebujete přečíst (na první pohled jednoduchý dotaz, na druhý zjistíte, že na údaje v buňce se můžete divat různými způsoby).
Jak z konkrétní buňky přečíst hodnotu? V následujících příkladech jsou uvedeny možnosti, kterými lze provést. Ať už jde o přečtení požadované hodnoty z buňky na aktuálním listu z právě otevřeného sešitu. Až po načítaní dat (hodnota, vzorec, ...) z jiných sešitů. Pro přehlednost je článek rozdělen na jednotlivé kapitoly:
Víc než teoretická slova pomohou praktické příklady, takže tady jsou:
V buňce A1 může být vzorec například =DNES()+A5 a buňka naformátovaná vlastní formátem.
Value: Základní načtení dat (pokud jde o datum načte se základní lokální nastavení Excel pro ČR mm.ddd.rrrr:
a = Range("A1").Value
' nebo úplně bez udané vlastnosti
a = Range("A1")
' případně si přímo zobrazit v MsgBoxu
MsgBox ([B9])
Value2: co vidí Excel například pro datum zobrazí číslo, které datumu odpovídá
a = Range("A1").Value2
Text: to co vidíte v buňce
a = Range("A1").Text
Formula: Funkce/vzorec v EN
a = Range("A1").Formula
FormulaLocal: Funkce/vzorec v lokálním jazyce (např. čeština)
a = Range("A1").FormulaLocal
FormulaR1C1: Funkce/vzorec v EN v režimu R1C1
a = Range("A1").FormulaR1C1
FormulaR1C1Local: Funkce/vzorec v lokálním jazyce (např. čeština) v režimu R1C1
a = Range("A1").FormulaR1C1Local
FormulaArray - využije se spíše pro zapsání maticového vzorce, ale jako poznámku mám uchováno i zde:
a = Range("B9").FormulaArray
Pro textování lze použít výpis do dialogového okna: V buňce B3 stačí měnit hodnoty a po spuštění kódu pozorovat jak se mění v závislosti na Value, Value2, Text. Zluste na datumu 31.12.2012, kdy tento bude v buňce mít formát "mm.ddd.rrrr" tj. 12.po.2012
' v B3 je 31.12.2012 formátováno "mm.ddd.rrrr" tj. 12.po.2012
MsgBox "Hodnota Value B3 = " & Range("B3").Value
'31.12.2012
MsgBox "Hodnota Value2 B3 = " & Range("B3").Value2
'41247
MsgBox "Hodnota Text B3 = " & Range("B3").Text
'12.po.2012
MsgBox "Hodnota Text B3 = " & Range("B3").Formula
'=TODAY()+A2
MsgBox "Hodnota Text B3 = " & Range("B3").FormulaLocal
'=DNES()+A2
Využití Range
b = Range("B2").Value
Využití Cells
b = Cells(2, 2).Value
Využití Cells v Range
' nebo-li vezme buňku v prvním řádků/sloupci v oblasti B2:C3
' neboli buňka B2
b = Range("B2:C3").Cells(1, 1).Value
Využití [] - hranaté závorky
b = [B2].Value
Využití [] - hranaté závorky a odkaz na ID názvu listu
b = List1.[A1].Value
' případně můžete rovnou otestovat
MsgBox (List1.[A1].Value)
aneb pokud je potřeby vybrat buňku z oblasti. Lze využít napřílad v cyklech For.
Pokud je nějaká buňka pojmenována pokus
c = Range("pokus").Value
Opět místo Value, lze podle požadavku využít Value2, Text, Formula....
Praktické načítaní z dalších listů
a = Worksheets(2).Range("A1").Value
b = Worksheets(2).Cells(2, 2).Value
c = Worksheets(2).Range("pokus").Value
Případně podle názvu listů:
a = Worksheets("List2").Range("A1").Value
b = Worksheets("List2").Cells(2, 2).Value
c = Worksheets("List2").Range("pokus").Value
Případně přes ID listu:
a = List2.Range("A1").Value
b = List2.Cells(2, 2).Value
c = List2.Range("pokus").Value
d = List2.[A1].Value
' pokud je člověk úplně líný ;)15:43 30.11.2018
f = List2.[A1]
MsgBox (List1.Cells(1, 1).Value)
Předpolad sešit existuje. Nejprve jej otevřete, přečtete hodnotu a zase zavřete.
Application.Workbooks.Open ("D:\test.xlsx")
Hodnota = Workbooks("test.xlsx").Worksheets("List1").Range("A1").Value
Workbooks("test.xlsx").Close
MsgBox (Hodnota)
Opět můžete využít předchozí způsoby odkazování a vybrat si kterou vlastnost chtete zobrazit (Value, Text ...).
Podrobněji jak otvírat sešity pomocí VBA (například zaheslované) v článku: Otevřít soubor s heslem - Excel VBA.
Přečte vzorec uvedený v buňce
MsgBox "Hodnota Formula B15: " & Range("B15").Formula
Poznámka: zobrazený vzorec bude s anglikými názvy funkcí!
Pokud chcete dostat vzorec s českým (lokálním) názvem funkce.
MsgBox "Hodnota Formula B27: " & Range("B27").FormulaLocal
FormulaR1C1: Funkce/vzorec v EN nebo lokální řeči v režimu R1C1
a = Range("A1").FormulaR1C1
b = Range("A1").FormulaR1C1Local
FormulaArray - poznámka pro pokročilé:
a = Range("B9").FormulaArray
Soubor
Přečíst údaje v buněk - praktické příklady - Excel VBA
ke stažení zdarma. Soubor využívá makra.
Máte nějaký zajímavý kód na čtení z buněk? Můžete doplnit do komentářů. Souvisecicí téma dolním opět do článku.
Článek byl aktualizován: 19.09.2020 11:06
Pomohl vám článek? Vyřešili jste problém? Můžete mě podpořit zakoupení tabulky (samozdřejmě čokoládové), když kafe nepiji ;) Odkaz na zakoupení čokolády. Za veškerou podporu vám děkuji a samozdřejmě jí využiji do zdokonalování a rozšířování webu.
Případně přidejte odkaz na vaši oblíbenou sociální síť, případně využijste hashtag #JakNaExcel .
Děkuji za váš čas a doufám, že jste nalezli odpověď na svůj problém.
Narazili jste v článku na nejasnost, chybu? Máte tip na vylepšení nebo doplnění článku? Budu rád pokud se zmínite v komentářích.
Microsoft Office (Word, Excel, Google tabulky, PowerPoint) se věnuji od roku 2000 (od dubna roku 2004 na této doméně) - V roce 2017 jsem od Microsoft získal prestižní ocenění MVP (zatím 8x za sebou). Své vědomosti a zkušenosti dávám k dispozici i on-line ve videích pro SEDUO. Ve firmách školím a konzultuji, učím na MUNI. Tento web již tvořím přes 20 let (o Excel píší přes 25). Zdarma je zde přes 1.500 návodu, tipů a triků, včetně přes 350 různých šablon, sešitů a přes 70 taháků v pdf.
Pomohl Vám návod? Sdílejte na Facebooku, G+ |
||
LinkedIn... |
Stránky o MS Office (Excel) produktu společnosti Microsoft. Neslouží jako technická podpora.
| Email na autora: pavel.lasak@gmail.com | Copyright © : Pavel Lasák 2004 - 2025 |