Jste zde: Úvodní stránka » excel » vba-listy-bunky » zapis-udaj-do-bunky-excel-vba
Excel VBA - zapiš údaj do buňky
Jak zapisovat do buněk pomocí maker (VBA).
Úvodem
Jak do konkrétní buňky zapsat nějaký údaj? V následujících příkladech je několik možností.
Příklad makra 1
Tradiční úkol. Do buňky A1 makro zapíše "Ahoj světe".
Sub Zapis()
Cells(1, 1) = "Ahoj světe."
End Sub
Příklad makra 2
Trochu složitější požadavek. Makro zapisuje do příslušného řádku a sloupce údaj, o který řádek a sloupec jde.
Sub popisuj()
For i = 1 To 9
For j = 1 To 3
Cells(i, j) = "Řadek: " & i & " - Sloupec " & j
Next j
Next i
End Sub
Ukázka:
Příklad makra 3
Makro vyplní více buněk požadovaným textem.
Sub Vicebunek()
Range("A1, A3, A5") = "Ahoj!"
End Sub
Sub Vicebunek2()
Range("A1:B5") = "ABECEDA"
End Sub
Příklad makra 4
Pomocí makra zapište údaj do určité buňky ve vybrané oblasti.
Sub Dobunky()
Range("A1:C5").cells(8) = "ZYZ"
End Sub
Toto je trochu složitější úvaha. Zápis se provádí do x-té buňky ze zadaného rozsahu.
V naší výběrové tabulce má první řádek pozice:
1 2 3 4 5
druhý řádek pozice:
6 7 8 9 10
třetí řádek pozice:
11 12 13 14 15 16
Náš požadavek je zapsat požadovanou hodnotu do pozice (buňky) 8.
Závěr
Údaje makro v MS Excel zapisuje na aktuálním listu v aktuálním sešitu. Pokud budete chtít makrem provést zapis na jiný list (sešit), je potřeba kód doplnit o adresu daného listu (sešitu).
Článek byl aktualizován: 24.01.2012 19:54
Další články k tématu
- Jak vybírat (označovat) buňky
- Zapiš údaj do buňky - právě čtete
- Zapiš vzorec (funkci) do buňky
- Datum a čas - nastavit formát
- Přečti údaj z buňky
- Range objekt - oblast buněk
- Resize Offset - změna oblasti buněk
- Řádky a sloupce ukázky kódu
- Zobrazit - Skrýt, řádky - sloupce
- Prázdné buňky - zjistit
- Komentáře co vše lze provádět
- Zamykání/odemykání buněk - Protect/Unprotect
Komentáře
Kvitek
Přidáno: 06.11.11 12:44
Ahoj, bojuju teď s případem, že mám počítanou buňku(A2), která mi vrací číselnou hodnotu - pak mám buňku(A1), ve kterém mám nějaké číslo napsané "natvrdo". Tak.. a teď bych potřeboval makro, které vezme hodnotu z A2, provede něajký další početní úkon (vynásobí dvěma, přičte jedna atp..) a výsledkem vynásobí hodnotu buňky A1 a tento výsledek zapíše do A1 jako novou hodnotu.. Uf.. Snad je to srozumitelné.. Logicky tuším jak to provést, ale neznám správné příkazy a syntaxi..
Pavel Lasák
Přidáno: 06.11.11 20:38
To Kvitek: Třeba takto.
a = Range("A2").Value
b = a + a
Range("A1").Value = b
Další výpočty dle libosti.
Aureas
Přidáno: 30.11.11 19:38
Ahojky POtreboval bych pomocí makra nastavit "tlacítko" tisk-vybraná cast bunek- pokusil jsme se toto makro udelat pomoci zaznamu,ale ouvej chyba 1004: Sub tlačítko10_Kliknutí() ' ' tlačítko10_Kliknutí Makro ' ' Range("D1:K19").Select Selection.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False End Sub Prosím o pomoc kde je chyba dekuji
Pavel Lasák
Přidáno: 30.11.11 20:40
To Aureas:
ActiveSheet.PageSetup.PrintArea = "$C$4:$K$16"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
Aureas
Přidáno: 01.12.11 19:08
Dík moc
Majkie
Přidáno: 03.01.12 12:32
Zdravíčko přeji,
pomocí zaznamu jsem vytvořil makro, které mi po stisknutí tlačítka vybere požadované listy a uloží je do jediného PDF souboru na požadované umístění. Nelíbí se mi však název takto vzniklého PDF souboru. Bylo by možné vznikající PDF soubor rovnou pojmenovat dle hodnoty buňky E2 (jen hodnoty - buňka E2 zobrazuje výsledek vzorce) na listu Fakturace? Současný kód vypadá následovně:
PDF_Save_All Makro
'
Sheets(Array("FAV", "DL", "Výdejka")).Select
Sheets("FAV").Activate
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"D:\Dokumenty\Pracovní\DUAVE\Dropbox\Faktury a dodací listy vydané\2012\FAP a DL PDF 2012\FAP\FA2012_ .pdf" _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True
Sheets("Fakturace").Select
Range("E3").Select
End Sub
Moc díky předem za případnou pomoc.
S pozdravem
Michal
Pavel Lasák
Přidáno: 03.01.12 17:38
To Majkie: Stačí přečíst údaj z dané buňky předpokládam že je ve tvaru: "C:\lasak\2012.pdf"
a = Range("A1").Value
no a předá se pro export
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Pdf_nazev ....
BJ
Přidáno: 13.01.12 13:57
Dobrý den, příklad č. 2 nefunguje - čtvrtý řádek je chybný. Může být např. takto: Cells(i,j) = "Řadek: " & i & " - Sloupec " & j
Pavel Lasák
Přidáno: 24.01.12 19:54
To BJ: Děkuji už jsem napravil, při kopírování vypadla formule Cells(i,j) =, takže je napraveno a příklad již funguje správně.
Jirka
Přidáno: 11.02.12 15:06
Super stránky, jsou mým velkým pomocníkem. Děkuji
Pavel Lasák
Přidáno: 11.02.12 17:08
To Jirka: Díky, proto je tvořím :)
Štěpán
Přidáno: 15.02.12 08:39
Dobrý den, mám big problém. V listu mám vytvořeno několik různých výpočtů na základě nich mi to v poslední buňce vypíše výsledek ve formě jména. Problém mám v tom že buňka ve které mám výsledek zcela nesmyslně formátuje zobrazený výsledek. Pokud dané slovo napíšu čistě bez vzorečku dá se zarovnat na střed buňky a i další formáty fungují jak mají. Pokud ho ale nechám zobrazit pomocí vzorečku jméno je divně posunuté a nejde vyrovnat na střed buňky. Je nějaká možnost jak nechat v buňce zobrazit pouze text (který by šel normálně formátovat)? Prosím o pomoc. Děkuji
Pavel Lasák
Přidáno: 15.02.12 10:33
To Štěpán: Neobsahuje výsledná hodnota mezery (nevím jaký je výsledný vzorec)? Pokud provedete naformátování musí fungovat.
Štěpán
Přidáno: 15.02.12 11:54
Děkuji za rychlou reakci. Abych shrnul co se počítá. V závislosti na datumu a čase se vypisuje kdo má momentálně pohotovost. Výsledek je celé jméno (Petr Novák), s mezerou. K výpočtům používám funkce Když, A, SVyhledat. V průběhu výpočtů se v novém vzorci odkazuji na buňky kde již je nějaká funkce. Konečný výsledek je pomocí fc. Concatenate. Jména která se vypisují ve výsledné buňce si bere z běžného textu. Zkoušel jsem ve jménu vynechat mezery ale formátování se o moc nezlepšilo. Možná již dělám chybu v některém z výpočtů
Pavel Lasák
Přidáno: 15.02.12 14:52
To Štěpán: Tak v Concatenate postupně nahrazovat jednotlivé proměnné a zjistit které to dělá. Jelikož není problém buňku naformatovat, je potřeba zjistit co formátování ovlivňuje. Zkusit do jiné buňky = buňka s vzorcem Concatenate zda s formátem je také stejný problém.
Štěpán
Přidáno: 16.02.12 07:19
Díky moc za radu, pokusím se funkci opravit či ji rovnou nahradit něčím jiným. Proto asi další zádrhel... existuje makro (nebo funkce) která by mi kontrolovala v jednom sloupci 8 řádků (A1:A8) a v případě že se v některém z 8mi řádků zobrazí nějaký text mi tento nechala zobrazit v jiné buňce(např.C3)? A hlavně jak udělám aby mi to případné makro kontrolovalo automaticky a já ho nemusel pokaždé ručně spouštět. Předem moc dík
Pavel Lasák
Přidáno: 16.02.12 14:51
To Šttěpán: Využít události listu, například SheetChange (změna v listu)http://office.lasakovi.com/excel/vba/vlastnosti-metody-udalosti-kolekce-excel-vba/ cyklem for 1 to 8 přes if zjišťovat, zda buňka obsahuje text.
Štěpán
Přidáno: 16.02.12 15:38
Tak jsem nakonec využil funkci Pročistit a problém je vyřešen. Veškeré info jsem čerpal z vašich stránek takže je to super a moc vám dííík
Pavel Lasák
Přidáno: 16.02.12 16:38
To Štěpán: Gratuluji k vyřešení. Jsem rád, že stránky pomáhají.
Martin
Přidáno: 25.02.12 16:05
Zdravím, Potřeboval bych v tabulce udělat asi makro na "vyber řádek, vlož nový (pod/nad je to jedno) a zkopíruj do něj obsah původního" Jenže, takovýchto řádků mám v tabulce několik na random pozicích, takže bych potřeboval způsob jak to vymslet aby mi to zkopírovalo jen řádky které předtím označím
Andrej
Přidáno: 12.04.12 15:51
Dobry den,chcel by som sa spytat: Ked zadam do TextBox-u cislo napr. na dve dasatinne miesta a chcem to nacitat do bunky v zosite. V bunke sa mi zobrazi hodnota cisla ako text, bez cisel za desatinnou ciarkou. Pred cislom v bunke sa vytvori apostrof. Ako tento problem odstranit, aby som mal v bunke zapisane cislo s desatinnou ciarkou? Dakujem velmi pekne za odpoved.
Pavel Lasák
Přidáno: 12.04.12 19:54
To Martin: viz článek: http://office.lasakovi.com/excel/vba-listy-bunky/radky-sloupce-excel-vba-kody/
Pavel Lasák
Přidáno: 12.04.12 19:58
To Andrej: nastavit příslušný formát například takto:
Range("a1").Value = CDec(Me.TextBox1.Value)
CBool
CByte
CCur
CDate
CDbl
CDec
CInt
CLng
CSng
CStr
CVar
nebo nastavit formát textbox
TextBox1.Text = Format(Number, "0.00")
jojo
Přidáno: 10.05.12 13:25
zdravim potrebujem poradit s makrom .mam tri stlpce a chcem aby zo stlpca A vybral vsetky hodnoty napriklad "009" a scital hodnoty v C podla stlpca B. priklad v stlpci B sa nachadza 3x "112" pre "009" v stlpci A. v stlpci C ma kazda "112" inu hodnotu a tie chcem scitat. vysledkom bude tab 111 = ??? 112 = ??? 211 = ??? atd. dufam ze je to zrozumitelne vysvetlene. poradte prosim ako zapisat makro. vstupne data A B C 008 231 0,35951990495 008 243 0,39733340372 008 231 0,00084065193 008 411 0,25443966339 008 324 3,80155775217 009 311 0,09992048863 009 112 0,00083684832 009 211 45,94512305510 009 512 0,08039077068 009 324 0,41974515393 009 121 0,44113070070 009 141 0,55228658827 009 112 8,71109016533 009 311 3,52031756380 009 222 0,60390707015 009 112 1,56412570854 010 211 28,00392873070 010 311 4,71930247394 010 243 0,29071348127 010 211 1,64391386883
Přidání nového komentáře
Za obsah komentářů neodpovídám, jelikož jsou komentáře publikovány ihned po jejich napsání čtenářem. Toto nemohu nijak ovlivnit. Přesto si vyhrazuji možnost jakýkoli neslušný komentář smazat bez udání důvodu.
Nejnovější článek
Z článku o
excel jsem jako poslední přidal či upravil článek
14.05.2012:
Kombinování funkcí - vzorců.
Nejčtenější článek
Excel
- Základy MS Excel
- menu Soubor
- Formát dat
- Vložit
- Grafy
- Vzorce (Funkce)
- Matice
- Data
- Revize (Nástroje)
- VBA Úvod a seznamy článků
- VBA Teorie základy
- VBA Buňky cell
- Jak vybírat (označovat) buňky
- Zapiš údaj do buňky
- Zapiš vzorec (funkci) do buňky
- Datum a čas - nastavit formát
- Přečti údaj z buňky
- Range objekt - oblast buněk
- Resize Offset - změna oblasti buněk
- Řádky a sloupce ukázky kódu
- Zobrazit - Skrýt, řádky - sloupce
- Prázdné buňky - zjistit
- Komentáře co vše lze provádět
- Zamykání/odemykání buněk - Protect/Unprotect
- VBA Listy sheet
- VBA Práce se soubory
- VBA Formuláře (UserForm)
- VBA Grafy
- VBA Application
- VBA Pás karet, Menu
- VBA Triky
- VBA praktické příklady kódu
- Praktické příklady
- Finanční poradce
- Šablony - Templates
- Testy
- Ostatní
Google+
Novinky
Matematické rovnice (vzorce) - Word 2010
Excel: 14.05.2012:
Kombinování funkcí - vzorců
Access: 28.04.2012:
VBA - Jak spustit v MS Access
Power Point: 25.04.2012:
SmartArt - PowerPoint 2010
Outlook 26.04.2012:
Outlook 2010 - jak vypadá
Project: 05.04.2012:
Kalendář ukázka
OneNote: 17.10.2010:
OneNote 2010 – popis obrazovky
Office 30.04.2012:
Kde hledat odpovědi na dotazy o MS Office
Poděkování
Translate
Stránky o MS Office produktu společnosti Micosoft. Neslouží jako technická podpora.
| Email na autora: lasak@centrum.cz | Copyright © : Pavel a Danka 2006 - 2012 |
| Doporučuji: Advokátní kancelář Brno - Dana Lasáková |
2768
Tento web zatím neprošel jazykovou korekturou. Beta verze redakčního systému.