Přeskočit navigaci | Přeskočit na novinky

Jste zde: Úvodní stránka » excel » vba-listy-bunky » precti-udaj-do-bunky-excel-vba

Excel VBA - přečti údaj z buňky

Videokurzy Excel

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

Úvodem - co se naučíte

Microsoft Excel logo

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:

Ukázka

Excel VBA - přečti úudaj z buněk

Praktické použití načtení

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 - může docházet ke ztrátě přesnosti, jelikož přebíra formátování (datum, měna, čas,...).
  • Value2 - přesnějším u data a měny zobrází číslo, bez ztráty přesnosti
  • Text - zobrazí přesně co je v buňce
  • Formula* - zobrazit vzorec různými způsoby (R1C1/A1), v angličtině nebo v lokální reči (češtině), případně jako maticový (spíše využití u zápisu)

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

Jak se odkázat na buňku: Cells / Range / []

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.

Načítaní z pojmenované buňky

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

Načítaní z jiných listů

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řečíst údaj z jiného sešitu

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číst vzorec

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
Microsoft Excel VBA - stahuj logo

Ke stažení

Soubor Přečíst údaje v buněk - praktické příklady - Excel VBA soubor ve formátu *.xlsm ke stažení zdarma. Soubor využívá makra.


Závěrem

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

Podpora - oceňte web a pozvěte mě na čokoládu

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 .

Poděkování

Děkuji za váš čas a doufám, že jste nalezli odpověď na svůj problém.

Vylepšení

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.


Pavel Lasák - autor webu

Pavel Lasák

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.

   Pavel Lasák LinkedIn Profil    Pavel Lasák twitter Profil




Excel


Sdílejte

Pomohl Vám návod?
Sdílejte na Facebooku, G+
LinkedIn...

Nové články


Reklama


TOPlist Licence Creative Commons webarchiv rss XML

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 |