Note: The other languages of the website are Google-translated. Back to English

Jak zaznamenat měnící se hodnoty v buňce v aplikaci Excel?

Jak zaznamenat každou měnící se hodnotu pro často se měnící buňku v aplikaci Excel? Například původní hodnota v buňce C2 je 100, při změně čísla 100 na 200 se původní hodnota 100 automaticky zobrazí v buňce D2 pro záznam. Pokračujte změnou 200 na 300, číslo 200 se vloží do buňky D3, změna 300 na 400 zobrazí 300 na D4 atd. K dosažení tohoto cíle vám může pomoci metoda v tomto článku.

Zaznamenejte měnící se hodnoty do buňky pomocí kódu VBA


Zaznamenejte měnící se hodnoty do buňky pomocí kódu VBA

Níže uvedený kód VBA vám pomůže zaznamenat každou měnící se hodnotu v buňce v aplikaci Excel. Postupujte prosím následovně.

1. V listu obsahuje buňku, do které chcete zaznamenat měnící se hodnoty, klikněte pravým tlačítkem na kartu listu a poté klikněte Zobrazit kód z kontextové nabídky. Viz snímek obrazovky:

2. Potom Microsoft Visual Basic pro aplikace Otevírá se okno, zkopírujte prosím níže uvedený kód VBA do okna Kód.

Kód VBA: zaznamenejte měnící se hodnoty v buňce

Dim xVal As String
'Update by Extendoffice 2018/8/22
Private Sub Worksheet_Change(ByVal Target As Range)
    Static xCount As Integer
    Application.EnableEvents = False
    If Target.Address = Range("C2").Address Then
        Range("D2").Offset(xCount, 0).Value = xVal
        xCount = xCount + 1
    Else
        If xVal <> Range("C2").Value Then
         Range("D2").Offset(xCount, 0).Value = xVal
        xCount = xCount + 1
        End If
    End If
    Application.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    xVal = Range("C2").Value
End Sub

Poznámky: V kódu je C2 buňka, do které chcete zaznamenat všechny její měnící se hodnoty. D2 je buňka, do které vyplníte první měnící se hodnotu C2.

3. zmáčkni Další + Q klávesy pro zavření Microsoft Visual Basic pro aplikace okno.

Od této chvíle, pokaždé, když změníte hodnoty v buňce C2, budou se předchozí měnící hodnoty zaznamenány v D2 a buňkách pod D2.


Nejlepší kancelářské nástroje produktivity

Kutools pro Excel řeší většinu vašich problémů a zvyšuje vaši produktivitu o 80%

  • Opakované použití: Rychle vložte složité vzorce, grafy a cokoli, co jste dříve používali; Šifrovat buňky s heslem; Vytvořte seznam adresátů a posílat e-maily ...
  • Super Formula Bar (snadno upravit více řádků textu a vzorce); Rozložení pro čtení (snadno číst a upravovat velké množství buněk); Vložit do filtrovaného rozsahu...
  • Sloučit buňky / řádky / sloupce bez ztráty dat; Rozdělit obsah buněk; Zkombinujte duplicitní řádky / sloupce... Zabraňte duplicitním buňkám; Porovnat rozsahy...
  • Vyberte možnost Duplikovat nebo Jedinečný Řádky; Vyberte prázdné řádky (všechny buňky jsou prázdné); Super hledání a fuzzy hledání v mnoha sešitech; Náhodný výběr ...
  • Přesná kopie Více buněk beze změny odkazu na vzorec; Automaticky vytvářet reference do více listů; Vložte odrážky, Zaškrtávací políčka a další ...
  • Extrahujte text, Přidat text, Odebrat podle pozice, Odebrat mezeru; Vytváření a tisk mezisoučtů stránkování; Převod mezi obsahem buněk a komentáři...
  • Super filtr (uložit a použít schémata filtrů na jiné listy); Rozšířené řazení podle měsíce / týdne / dne, frekvence a dalších; Speciální filtr tučnou kurzívou ...
  • Kombinujte sešity a pracovní listy; Sloučit tabulky na základě klíčových sloupců; Rozdělte data do více listů; Dávkový převod xls, xlsx a PDF...
  • Více než 300 výkonných funkcí. Podporuje Office / Excel 2007-2021 a 365. Podporuje všechny jazyky. Snadné nasazení ve vašem podniku nebo organizaci. Plné funkce 30denní bezplatná zkušební verze. 60denní záruka vrácení peněz.
karta kte 201905

Office Tab přináší do Office rozhraní s kartami a usnadňuje vám práci

  • Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
  • Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
  • Zvyšuje vaši produktivitu o 50%a snižuje stovky kliknutí myší každý den!
officetab dno
Komentáře (49)
Zatím žádné hodnocení. Buďte první, kdo ohodnotí!
Tento komentář byl moderátorem webu minimalizován
Hi


To funguje opravdu dobře, pokud je hodnota v C2 zadána pokaždé, ale nefunguje to, pokud C2 obsahuje vzorec. Existuje způsob, jak totéž provést, ale pomocí vzorce v C2?


Díky za toto snadné řešení.
Tento komentář byl moderátorem webu minimalizován
Pokud zjistíte, jak jej používat, pokud C2 obsahuje vzorec, dejte mi prosím vědět, jak jste to udělali. Nikde na internetu nemůžu najít jak na to.
Tento komentář byl moderátorem webu minimalizován
Dobrý den,
Kód byl optimalizován. Zkuste to prosím a děkujeme za váš komentář.

Dim xVal As String
Soukromá dílčí tabulka_Změna (ByVal Target As Range)
Statické xCount As Integer
Application.EnableEvents = False
If Target.Address = Range("C2").Address Then
Rozsah("D2").Offset(xCount, 0).Hodnota = xVal
xCount = xCount + 1
Jiný
If xVal <> Range("C2").Value Then
Rozsah("D2").Offset(xCount, 0).Hodnota = xVal
xCount = xCount + 1
End If
End If
Application.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange (ByVal Target As Range)
xVal = Rozsah("C2").Hodnota
End Sub
Tento komentář byl moderátorem webu minimalizován
HAI,



VÝŠE UVEDENÉ VBS POUZE C2 PŘESUN NA D2,



INEED C2 AŽ C55 PŘESUN NA D2 AŽ D55



MŮŽETE POMOCI A POSLAT MI alexmathew33@gmail.com
Tento komentář byl moderátorem webu minimalizován
Prosím, pomozte mi s níže uvedeným scénářem:
Z listu 1:
A1=HODNOTA (Změny kvůli RTD se vzorcem)
B2= VALUE1 (Změny kvůli RTD se vzorcem)

Zkopírujte všechny předchozí buňky hodnot A1, B1 do Listu2 sloupců M,NOF Stejný excel nebo List1 nového sešitu

Prosím, sdílejte se mnou na melukotahari@gmail.com

- Melukota
Tento komentář byl moderátorem webu minimalizován
MŮŽEME ZÍSKAT VBS PRO VÝŠE UVEDENÉ
Tento komentář byl moderátorem webu minimalizován
Co když je buňka C2 vzorec? Jak zaznamenám hodnoty C2, pokud se jedná o vzorec?
Tento komentář byl moderátorem webu minimalizován
Dobrý den,
Kód byl optimalizován. Zkuste to prosím a děkujeme za váš komentář.

Dim xVal As String
Soukromá dílčí tabulka_Změna (ByVal Target As Range)
Statické xCount As Integer
Application.EnableEvents = False
If Target.Address = Range("C2").Address Then
Rozsah("D2").Offset(xCount, 0).Hodnota = xVal
xCount = xCount + 1
Jiný
If xVal <> Range("C2").Value Then
Rozsah("D2").Offset(xCount, 0).Hodnota = xVal
xCount = xCount + 1
End If
End If
Application.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange (ByVal Target As Range)
xVal = Rozsah("C2").Hodnota
End Sub
Tento komentář byl moderátorem webu minimalizován
HAI,



VÝŠE UVEDENÉ VBS POUZE C2 PŘESUN NA D2,



INEED C2 AŽ C55 PŘESUN NA D2 AŽ D55



MŮŽETE POMOCI A POSLAT MI alexmathew33@gmail.com
Tento komentář byl moderátorem webu minimalizován
Ahoj--opravdu oceňuji tento tutoriál...Snažím se zaznamenat změněnou hodnotu do jiné tabulky. Například chci zaznamenat hodnotu listu1 C2 na list2 D2. Můžete poskytnout upravený kód?
Děkuji!
Tento komentář byl moderátorem webu minimalizován
Mohou být záznamy vodorovně místo svislé?
Tento komentář byl moderátorem webu minimalizován
Dobrý den, bylo by možné, aby toto makro zaznamenalo dvě samostatné buňky do dvou samostatných sloupců? Tj. Mohu zaznamenat všechny hodnoty z A1 do sloupce B a všechny hodnoty z C1 do sloupce D?
Tento komentář byl moderátorem webu minimalizován
Dobrý den,
Zkuste prosím metodu v tomto článku:
Jak si zapamatovat nebo uložit předchozí hodnotu buňky změněné buňky v aplikaci Excel?
https://www.extendoffice.com/documents/excel/5056-excel-remember-save-previous-cell-value.html
Tento komentář byl moderátorem webu minimalizován
děkuji za to, ale místo toho, abych pokračoval donekonečna, jak bych mohl restartovat zpět na první buňku po X mnohokrát?
Tento komentář byl moderátorem webu minimalizován
Dobrý den,
Máte na mysli, že po nahrání X mount časů chcete restartovat zpět na první hodnotu záznamu?
Promiňte, nejsem si jistý, zda jsem dostal vaši otázku. Bylo by hezké, kdybyste mohli poskytnout snímek obrazovky toho, co se snažíte udělat.
Tento komentář byl moderátorem webu minimalizován
Díky

ale co mohu dělat, když to potřebuji opakovat pro mnoho buněk
Tento komentář byl moderátorem webu minimalizován
Díky

ale co můžu dělat, když to potřebuji zopakovat pro raw
Tento komentář byl moderátorem webu minimalizován
Peki bu kaydı yatay olarak nasıl kaydedeceğiz. Satırlara değil Sütunlara kaydetmesini istiyorum. Teşekkürler
Tento komentář byl moderátorem webu minimalizován
Jak uložím číslo, jakmile je vygenerováno, ne až po vygenerování nového čísla? Problém, který mám, je, že číslo není zaznamenáno hned, ale až po vytvoření druhého čísla; to znamená, že ani buňka, kterou zaznamenávám, ani buňka, která je cílem, nemají číslo...jak mohu zaznamenat, jakmile se číslo vygeneruje? Díky za vaši pomoc!
Tento komentář byl moderátorem webu minimalizován
Ahoj Johne,
S tím vám bohužel nepomůžu. Vítejte, pokud chcete na našem fóru zveřejnit jakýkoli dotaz: https://www.extendoffice.com/forum.html. Děkuji za váš komentář.
Tento komentář byl moderátorem webu minimalizován
Dobrý den, bylo by možné toto použít pro více než jednu buňku?
Tento komentář byl moderátorem webu minimalizován
Ahoj! Děkuji za kód, ale mám dotaz

Existuje způsob, jak upravit kód tak, aby zaznamenával hodnotu buňky denně nebo v určité dny, které uvádím v samostatném sloupci?


Díky!
Tento komentář byl moderátorem webu minimalizován
Zkuste to

Dim xVal As String
Dim iVal As Integer
Soukromá dílčí tabulka_Změna (ByVal Target As Range)
Statické xCount As Integer
iVal = Application.WorksheetFunction.Count(Range("F:F"), 1)
xCount = iVal
Application.EnableEvents = False
If Target.Address = Range("C2").Address Then
Range("E3").Offset(xCount, 0).Value = Range("C2").Value
Range("F3").Offset(xCount, 0).Value = Now
xCount = xCount + 1
Jiný
If xVal <> Range("C2").Value Then
Range("E3").Offset(xCount, 0).Value = Range("C2").Value
Range("F3").Offset(xCount, 0).Value = Now
xCount = xCount + 1
End If
End If
Application.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange (ByVal Target As Range)
xVal = Rozsah("C2").Hodnota
End Sub
Tento komentář byl moderátorem webu minimalizován
Zkoušel jsem tento kód pro buňku C2, která obsahuje hodnoty DDE, které se mění sekundu po sekundě. Používám následující kód, ale nefunguje.

Dim xVal As String
Soukromá dílčí tabulka_Změna (ByVal Target As Range)
Statické xCount As Integer
Application.EnableEvents = False
If Target.Address = Range("C2").Address Then
Rozsah("D2").Offset(xCount, 0).Hodnota = xVal
xCount = xCount + 1
Jiný
If xVal <> Range("C2").Value Then
Rozsah("D2").Offset(xCount, 0).Hodnota = xVal
xCount = xCount + 1
End If
End If
Application.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange (ByVal Target As Range)
xVal = Rozsah("C2").Hodnota
End Sub
Tento komentář byl moderátorem webu minimalizován
Dobrý den,
Jakou verzi Excelu používáte?
Tento komentář byl moderátorem webu minimalizován
funguje to, když zadám data, nefunguje to, když streamuji data v reálném čase přímo do této buňky (=RTD(.....)). jak mohu zajistit, aby to fungovalo s RTD?
Tento komentář byl moderátorem webu minimalizován
Děkuji moc za tutoriály, rád bych věděl, jestli existuje způsob, jak přimět buňku, aby se chovala jako normální kalkulačka.
tj. tato buňka by měla být schopna sčítat čísla, která se objeví v jiné buňce, a přitom zachovat viditelnou poslední kumulativní číslici.
Tato další buňka bude klíčovou buňkou nebo aktivní buňkou.
Příklad:
Buňka 1: =2*5, odpověď se zobrazí v buňce 2,
Buňka 1: =3*6.8, odpověď se přičte k předchozí hodnotě vyplývající z (2*5) a stále se zobrazuje v buňce 2.
Tento komentář byl moderátorem webu minimalizován
Výše uvedený vzorec nefunguje pro vzorce, pouze pro ruční zadání. existuje nějaký způsob, jak změnit kódování, aby fungovalo pro buňky, které obsahují vzorec?



Dim xVal As String
'Aktualizovat od Extendoffice 2018 / 8 / 22
Soukromá dílčí tabulka_Změna (ByVal Target As Range)
Statické xCount As Integer
Application.EnableEvents = False
If Target.Address = Range("C2").Address Then
Rozsah("D2").Offset(xCount, 0).Hodnota = xVal
xCount = xCount + 1
Jiný
If xVal <> Range("C2").Value Then
Rozsah("D2").Offset(xCount, 0).Hodnota = xVal
xCount = xCount + 1
End If
End If
Application.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange (ByVal Target As Range)
xVal = Rozsah("C2").Hodnota
End Sub
Tento komentář byl moderátorem webu minimalizován
Dobrý den,
Zkuste prosím níže uvedený VBA.



Dim xVal As String

Soukromá dílčí tabulka_Změna (ByVal Target As Range)

Statické xCount As Integer

Application.EnableEvents = False

If Target.Address = Range("C2").Address Then

Rozsah("D2").Offset(xCount, 0).Hodnota = xVal

xCount = xCount + 1

Jiný

If xVal <> Range("C2").Value Then

Rozsah("D2").Offset(xCount, 0).Hodnota = xVal

xCount = xCount + 1

End If

End If

Application.EnableEvents = True

End Sub

Private Sub Worksheet_SelectionChange (ByVal Target As Range)

xVal = Rozsah("C2").Hodnota

End Sub
Tento komentář byl moderátorem webu minimalizován
nefunguje pro vzorce
Tento komentář byl moderátorem webu minimalizován
To je v pořádku, ale musím použít tento kód na 2 různé buňky a uložit měnící se hodnoty pro každou buňku do samostatných odpovídajících sloupců. Jak lze kód upravit? Dík.
Tento komentář byl moderátorem webu minimalizován
Dobrý den,

Zkuste prosím metodu v tomto článku:

Jak si zapamatovat nebo uložit předchozí hodnotu buňky změněné buňky v aplikaci Excel?

https://www.extendoffice.com/documents/excel/5056-excel-remember-save-previous-cell-value.html
Tento komentář byl moderátorem webu minimalizován
Je možné to přizpůsobit a použít s DDE/RTD? Funguje dobře při ruční výměně buněk, ale ne s DDE/RTD.
Tento komentář byl moderátorem webu minimalizován
Lze to změnit tak, aby fungovalo pro více buněk v jednom listu?
Tento komentář byl moderátorem webu minimalizován
Dobrý den,

Zkuste prosím metodu v tomto článku:

Jak si zapamatovat nebo uložit předchozí hodnotu buňky změněné buňky v aplikaci Excel?

https://www.extendoffice.com/documents/excel/5056-excel-remember-save-previous-cell-value.html
Tento komentář byl moderátorem webu minimalizován
Ahoj! Pokusil jsem se použít tento kód k zaznamenání každé změny hodnoty konkrétní buňky. Zajímalo by mě však, zda by mi někdo nemohl pomoci tím, že by to upravil tak, aby se změna hodnoty shromáždila v JINÉ záložce a také se uložila při každém zavření sešitu. Protože se při každém otevření sešitu znovu nastaví bez uložení předchozích hodnot. Kód: Dim xVal As String
'Aktualizovat od Extendoffice 2018 / 8 / 22
Soukromá dílčí tabulka_Změna (ByVal Target As Range)
Statické xCount As Integer
Application.EnableEvents = False
If Target.Address = Range("J7").Address Then
Rozsah("AB2").Offset(xCount, 0).Hodnota = xVal
xCount = xCount + 1
Jiný
If xVal <> Range("J7").Value Then
Rozsah("AB2").Offset(xCount, 0).Hodnota = xVal
xCount = xCount + 1
End If
End If
Application.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange (ByVal Target As Range)
xVal = Rozsah("J7").Hodnota
End Sub
Tento komentář byl moderátorem webu minimalizován
Ahoj, děkuji za níže uvedené. Rychlá otázka....jste schopni to občas resetovat, abyste na vaši žádost mohli dostat makro k odstranění všech předchozích čísel a začít znovu zaznamenávat čísla z buňky D2? V současné době se zaznamenávají čísla D2, D3, D4, D5, D6 atd
Zatím zde nejsou žádné komentáře
Načíst další
Zanechat své připomínky
Odesílání jako host
×
Ohodnoťte tento příspěvek:
0   Postavy
Doporučená umístění

Sociální sítě

Copyright © 2009 - www.extendoffice.com. | Všechna práva vyhrazena. Poháněno ExtendOffice. | |. | Sitemap
Microsoft a logo Office jsou ochranné známky nebo registrované ochranné známky společnosti Microsoft Corporation ve Spojených státech a / nebo jiných zemích.
Chráněno Sectigo SSL