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

Odměna

Ušetřil vám tento web čas, peníze? Pomohl vyřešit problém? Jste ochotni poskytnout symbolickou odměnu na další rozvoj? Vybrte si formu odměny, která vám vyhovuje.


Pavel Lasák - autor webu

Pavel Lasák

Microsoft Office (Word, Excel, Google tabulky, PowerPoint) se věnuji od roku 2000 (od 2004 na této doméně) - V roce 2017 jsem od Microsoft získal prestižní ocenění MVP (zatím jsem jediný z ČR v kategorií Excel). 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 15 let. Zdarma je zde přes 1.000 návodu, tipů a triků, včetně přes 250 různých šablon, sešitů.

   Pavel Lasák LinkedIn Profil    Pavel Lasák Google+ Profil    Pavel Lasák facebook Profil    Pavel Lasák twitter Profil


Komentáře

" ; // echo "kompletni_cesta :" ; // echo $adresar_pro_vkladani ; // echo "
" ; // echo " Tady bude možnost přidání komentáře" ; // echo "
" ; // echo "
" ; $kompletni_cesta = "komentare"; $adresar_pro_vkladani = $kompletni_cesta; ?> \n"; reset($polozky); while (list($key, $val) = each($polozky)) { if ($val != "." && $val != "..") { if (!is_dir($val)) { // echo "$val
\n"; $fp = FOpen ($adresar_pro_vkladani."/".$val, "r"); //otevře soubor book.dat pro čtení $data = FRead ($fp, FileSize($adresar_pro_vkladani."/".$val)); //přečte data ze souboru a uloží do proměnné "data" - kvůli tomu aby se zobrazoval poslední příspěvek nahoře FClose($fp); echo "$data"; } } } ?>




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