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

Jak vložit datové razítko do buňky, pokud je zaškrtnuto políčko v aplikaci Excel?

Za normálních okolností zadáváte razítko data pomocí klávesových zkratek v aplikaci Excel. Co takhle vložit do buňky datové razítko pomocí zaškrtávacího políčka v aplikaci Excel? Při zaškrtnutí políčka se časové razítko automaticky vloží do zadané buňky. Tento článek vám pomůže jej vyřešit.

Vložte datové razítko do buňky, pokud je zaškrtnuto políčko s kódem VBA


Vložte datové razítko do buňky, pokud je zaškrtnuto políčko s kódem VBA

Tato část představí skript VBA, který vám pomůže automaticky vložit datové razítko do buňky, pokud zaškrtnete políčko v aplikaci Excel. Postupujte prosím následovně.

1. Po vložení zaškrtávacího políčka stiskněte Další + F11 současně otevřete Microsoft Visual Basic pro aplikace okno.

2. V Microsoft Visual Basic pro aplikace okno, klepněte na tlačítko Vložit > Modul. Poté zkopírujte a vložte níže uvedený kód VBA do okna modulu.

Kód VBA: Vložte datové razítko do buňky, pokud je zaškrtnuto

Sub CheckBox_Date_Stamp()
Dim xChk As CheckBox
Set xChk = ActiveSheet.CheckBoxes(Application.Caller)
With xChk.TopLeftCell.Offset(, 1)
    If xChk.Value = xlOff Then
        .Value = ""
    Else
       .Value = Date
    End If
End With
End Sub

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

4. Klikněte pravým tlačítkem na zaškrtávací políčko a vyberte Přiřadit Micro z nabídky pravého tlačítka myši. Viz screenshot:

5. V Přiřadit makro dialogové okno vyberte CheckBox_Date_Stamp v Název makra a poté klikněte na OK knoflík. Viz screenshot:

Po zaškrtnutí tohoto políčka se datumové razítko vloží automaticky do sousední buňky.


Související články:


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 (22)
Zatím žádné hodnocení. Buďte první, kdo ohodnotí!
Tento komentář byl moderátorem webu minimalizován
Děkuji, bylo to velmi užitečné, rád bych poznamenal, že mi přijde užitečnější mít datumové razítko vlevo od zaškrtávacího políčka. k tomu stačí změnit offset na (, -1)
Tento komentář byl moderátorem webu minimalizován
Existuje nějaký způsob, jak to udělat s datem A časem? Děkuji za informace v každém případě!
Tento komentář byl moderátorem webu minimalizován
Sub CheckBox_Date_Stamp() Dim xChk As CheckBox Set xChk = ActiveSheet.CheckBoxes(Application.Caller) With xChk.TopLeftCell.Offset(, 1) If xChk.Value = xlOff Then .Value = "" = Date &Value Time End If End With End Sub
Tento komentář byl moderátorem webu minimalizován
Dobrý den,
Chcete-li přidat datum a čas, použijte níže uvedený kód VBA.

Sub CheckBox_Date_Stamp()
Dim xChk jako CheckBox
Nastavit xChk = ActiveSheet.CheckBoxes(Application.Caller)
S xChk.TopLeftCell.Offset(, 1)
Pokud xChk.Value = xlOff Pak
.Value = ""
Jiný
.Value = Now()
End If
Konec s
End Sub
Tento komentář byl moderátorem webu minimalizován
HI Zkoušel jsem tento vzorec a fungoval pouze pro A1 a B1, když jsem použil makro na zaškrtávací políčko v A1. Když jsem však makro aplikoval na zaškrtávací políčko v A2, v B2 se nic nestalo. Jak by se také změnil vzorec, kdybych jej chtěl použít pro kontrolní seznam? Pokud byl sloupec A zaškrtávacími políčky a sloupec C byl dokončen datum.
Tento komentář byl moderátorem webu minimalizován
Ahoj:) buňku se zaškrtávacím políčkem v A1 můžete zkopírovat do zbytku sloupce. nebo přiřaďte makro jednotlivě každému zaškrtávacímu políčku
Tento komentář byl moderátorem webu minimalizován
Dobrý den,
Přiřaďte makro jednotlivě každému zaškrtávacímu políčku.
Tento komentář byl moderátorem webu minimalizován
Kód VBA jsem zkopíroval a vložil přesně, ale v mé tabulce se datum zobrazuje v buňce nad a napravo od sloupce zaškrtávacího políčka, nikoli v buňce přímo napravo. ?
Tento komentář byl moderátorem webu minimalizován
Taky mám úplně stejný problém. "POMOC! Potřebuji někoho POMOC! Ne jen tak někdo POMOC! Víš, že potřebuji někoho POMOC!
Tento komentář byl moderátorem webu minimalizován
Dobrý den,
Kód v mém případě funguje dobře. Po zaškrtnutí políčka se datum objeví v buňce přímo vpravo. Poskytli byste snímek obrazovky vašeho případu? A jakou verzi Office používáte. Děkuji.
Tento komentář byl moderátorem webu minimalizován
Měl jsem stejný problém s datem a časovým razítkem zobrazeným v buňce nad zamýšlenou buňkou (pomocí Excelu 2007). Pokračoval jsem a upravil vzorec "offset" tak, aby přešel přes jednu buňku A o jednu buňku dolů a nyní se razítko zobrazuje tam, kde ho chci: With xChk.TopLeftCell.Offset(1, 1)
Aktualizuji list, který vytvořil někdo jiný a nevytvořil zaškrtávací políčka, ale může to souviset s umístěním zaškrtávacího políčka uvnitř buňky. Když jsem zarovnal zaškrtávací políčko se spodní částí buňky, dostal jsem jiné výsledky.

Doufám, že pomáhá!
Tento komentář byl moderátorem webu minimalizován
To je to, co jsem udělal, abych tento problém vyřešil

Sub CheckBox_Date_Stamp()
Dim xChk jako CheckBox
Nastavit xChk = ActiveSheet.CheckBoxes(Application.Caller)
S xChk.TopLeftCell.Offset(1, 1)
Pokud xChk.Value = xlOff Pak
.Value = ""
Jiný
.Value = Now()
End If
Konec s
End Sub
Tento komentář byl moderátorem webu minimalizován
Ahoj! Díky za kód. Funguje to perfektně s mírným vyladěním offsetu. Nicméně jsem pracoval na listu, který má mnoho mnoho manyyy řádků (~ 500+ řádků), který obsahuje spoustu zaškrtávacích políček a velikost souboru výrazně vzrostla. Existuje nějaký způsob, jak snížit velikost? Nějaký alternativní způsob, jak to udělat?

Díky!
Tento komentář byl moderátorem webu minimalizován
Dobrý táta
Pokud je v řádcích mnoho zaškrtávacích políček a chcete zaškrtnout všechna zaškrtávací políčka současně, může vám pomoci níže uvedený kód VBA.
Zkopírujte prosím kódy do okna kódu modulu, vraťte se do listu a vytvořte tlačítko (například Button (Form Control)), přiřaďte k tlačítku makro SetAllChkChange() a poté kliknutím na tlačítko spusťte kód.

Nyní byla aktivována všechna zaškrtávací políčka v řádcích vašeho listu. Můžete zaškrtnout kterýkoli z nich a vložit datumové razítko do sousední buňky.

Sub SetAllChkChange()
Dim xChks
Dim xChk jako CheckBox
Dim xI As Long
On Error Resume Next
Vymazat xArrChk
Nastavit xChks = ActiveSheet.CheckBoxes
ReDim Preserve xArrChk (1 až xChks.count)
xI = 1
Pro každý xChk v xChks
xChk.Vybrat
Selection.OnAction = "ObjChkChange"
další
End Sub


Sub ObjChkChange()
Dim xChk jako CheckBox
Nastavit xChk = ActiveSheet.CheckBoxes(Application.Caller)
S xChk.TopLeftCell.Offset(, 1)
Pokud xChk.Value = xlOff Pak
.Value = ""
Jiný
.Hodnota = Datum
End If
Konec s
End Sub
Tento komentář byl moderátorem webu minimalizován
jak dosáhnu toho, aby se pod mým zaškrtávacím políčkem zobrazovalo datumové razítko?
Tento komentář byl moderátorem webu minimalizován
Ahoj! Nedaří se mi najít způsob, kde bude datumové razítko na straně zaškrtávacího políčka. Zkoušel jsem změnit hodnotu offsetu z 0, 1 a -1. můžete mi s tím pomoci? Děkuji!
Tento komentář byl moderátorem webu minimalizován
Ahoj, předpokládejme, že vaše zaškrtávací políčko je v A2 a chcete vytisknout datumové razítko na pravou stranu zaškrtávacího políčka (v tomto případě je to B2), změňte prosím hodnotu Offset na Offset(1, 1).
Tento komentář byl moderátorem webu minimalizován
Použil jsem VBA pro časové razítko zaškrtávacího políčka, ale první dvě buňky nefungují správně. Moje první zaškrtávací políčko je v A2, když zaškrtnu políčko, čas je zveřejněn v B1. Jak to napravím?
Tento komentář byl moderátorem webu minimalizován
Hi Steve,
Nahraďte prosím čtvrtý řádek v kódu textem With xChk.TopLeftCell.Offset(1, 1).
Tento komentář byl moderátorem webu minimalizován
Děkuji mnohokrát!! Brilantní! Děkuji!
Tento komentář byl moderátorem webu minimalizován
Ahoj, jak mohu zacyklit kód, aby zahrnoval všechna zaškrtávací políčka ve sloupci?
Tento komentář byl moderátorem webu minimalizován
Dobrý den,
Pokud je v řádcích mnoho zaškrtávacích políček a chcete zaškrtnout všechna zaškrtávací políčka současně, může vám pomoci níže uvedený kód VBA.
Zkopírujte prosím níže uvedené kódy do okna s kódem modulu, vraťte se do listu a vytvořte tlačítko (např. Button (Form Control)), přiřaďte makro SetAllChkChange() na tlačítko a poté kliknutím na tlačítko spusťte kód.

Nyní byla aktivována všechna zaškrtávací políčka v řádcích vašeho listu. Můžete zaškrtnout kterýkoli z nich a vložit datumové razítko do sousední buňky.

Sub SetAllChkChange()
'Aktualizováno Extendoffice 20211130
Dim xChks
Dim xChk jako CheckBox
On Error Resume Next
Nastavit xChks = ActiveSheet.CheckBoxes
Pro každý xChk v xChks
xChk.Vybrat
Selection.OnAction = "ObjChkChange"
další
End Sub

Sub ObjChkChange()
Dim xChk jako CheckBox
Nastavit xChk = ActiveSheet.CheckBoxes(Application.Caller)
S xChk.TopLeftCell.Offset(, 1)
Pokud xChk.Value = xlOff Pak
.Value = ""
Jiný
.Hodnota = Datum
End If
Konec s
End Sub
Zatím zde nejsou žádné komentáře
Zanechte prosím své komentáře v angličtině
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