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

Jak automaticky přidat / zadat aktuální datum a čas v buňce dvojitým kliknutím v aplikaci Excel?

Pokud potřebujete vložit aktuální datum nebo čas často do listu, můžete vyzkoušet metodu v tomto článku. Tento článek vám pomůže automaticky přidat nebo zadat aktuální datum nebo datum v zadaných buňkách rozsahu pouze dvojitým kliknutím.

Dvojitým kliknutím automaticky přidáte / zadáte aktuální datum nebo čas s kódem VBA


Dvojitým kliknutím automaticky přidáte / zadáte aktuální datum nebo čas s kódem VBA

Můžete spustit níže uvedený kód VBA a automaticky přidat aktuální datum nebo čas v buňce dvojitým kliknutím. Postupujte prosím následovně.

1. Klikněte pravým tlačítkem na kartu List, do které chcete vložit aktuální datum, do vybraných buněk a poté vyberte Zobrazit kód z nabídky pravého tlačítka myši.

2. V Microsoft Visual Basic pro aplikace zkopírujte a vložte níže uvedený kód VBA do okna Kód.

Kód VBA: Dvojitým kliknutím přidáte do buňky aktuální datum

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("A1:B10")) Is Nothing Then
        Cancel = True
        Target.Formula = Date
    End If
End Sub

Poznámky:

1. V kódu je A1: B10 rozsah, do kterého přidáte aktuální datum.
2. Pokud potřebujete do buňky přidat aktuální datum a čas, nahraďte jej prosím Datum s Nyní() v kódu. Můžete je změnit podle potřeby.

3. lis Další + Q současně zavřete Microsoft Visual Basic pro aplikace okno a vrátit se do listu.

Od této chvíle při dvojitém kliknutí na libovolnou buňku ve specifikovaném rozsahu A1: B10. Aktuální datum nebo čas budou zadány automaticky.


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 (28)
Zatím žádné hodnocení. Buďte první, kdo ohodnotí!
Tento komentář byl moderátorem webu minimalizován
Jak to rozšíříme, abychom přidali další rozsah buněk? Do kódu jsem přidal tyto další buňky v rozsahu: (Target, Range("C10:C19", "D10:D19", "E10:E19")), ale dává mi to chybu kompilace, která říká "nesprávný počet argumentů nebo neplatná přiřazení vlastností“ a poté zvýrazní první řádek kódu, který jste zadali „Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)“ Pomozte mi prosím.
Tento komentář byl moderátorem webu minimalizován
Joeli, nevím, jestli stále hledáte řešení, ale musíte změnit svůj kód:

From: (Target, Range("C10:C19", "D10:D19", "E10:E19"))
Komu: (cíl, rozsah("C10:C19,D10:D19,E10:E19"))

Tohle udělá za vás.
Tento komentář byl moderátorem webu minimalizován
Dobrý den Nick,
Rád bych od vás dostal radu na toto téma....
Mám soubor, kterému říkám "list produktivity".... Na tento list bych chtěl vložit skutečný čas, do vybraných buněk, kdy se na buňku klikne... (Pokud je to možné, chtěl bych tyto buňky poté, co se čas zdá být neměnný .....něco jako být uzamčen.)
Vážím si vašeho času a předem děkuji
Attila, Maďarsko
exyzee@gmail.com
Tento komentář byl moderátorem webu minimalizován
Milý Attilo,
Zkuste prosím níže uvedený snímek obrazovky vložit skutečný čas do buňky v určitém rozsahu, když na ni kliknete.
(Nelze dosáhnout funkce automatického zamykání buněk, omlouváme se za to)

Private Sub Worksheet_SelectionChange (ByVal Target As Range)
Application.ScreenUpdating = False
If Not Intersect(Target, Range("A1:B10")) Is Nothing Then
Zrušit = True
Target.Formula = Datum
End If
End Sub
Tento komentář byl moderátorem webu minimalizován
Kód opravdu funguje... Děkuji... přidal jsem další kód na ochranu buňky po zadání dat. Nyní je problém v tom, že jakmile zadám data a buňka je chráněna, a pokud omylem dvakrát kliknu na chráněnou buňku, výše uvedený kód se pokazí pro celý list. Pak to nejde. Abych kód uvedl do provozu, musím odemknout list. nějaké řešení?

Použitý ochranný kód je níže:

Soukromá dílčí tabulka_Změna (ByVal Target As Range)
Dim xRg jako rozsah
On Error Resume Next
Nastavit xRg = Intersect(Rozsah("A1:a1000,b1:b1000,G1:G1000"), Cíl)
Pokud xRg není nic, pak Exit Sub
Target.Worksheet.Unprotect Password:="123"
xRg.Locked = Pravda
Target.Worksheet.Protect Password:="123"
End Sub
Tento komentář byl moderátorem webu minimalizován
Vážený Paule,
Zkouším vámi poskytnutý kód. Celý list bude chráněn okamžitě, jakmile zadám data do kterékoli z uvedených chráněných buněk.
Kromě toho, když dvakrát kliknete na chráněnou buňku, v mém případě se na kódu nic nezmění.
Mohl byste vysvětlit, co přesně se snažíte udělat s kódem?
Tento komentář byl moderátorem webu minimalizován
Promiň, chápu tvůj názor. (chybí výše uvedený kód)
Tento komentář byl moderátorem webu minimalizován
Vytvořený kód pro zadání dvojitým kliknutím je:


Private Sub Worksheet_BeforeDoubleClick (ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("A1:a1000")) Is Nothing Then
Zrušit = True
Target.Formula = Datum
End If

If Not Intersect(Target, Range("b1:b1000")) je Nothing Then
Zrušit = True
Target.Formula = Čas
End If

If Not Intersect(Target, Range("g1:g1000")) Is Nothing Then
Zrušit = True
Target.Formula = Čas
End If
End Sub
Tento komentář byl moderátorem webu minimalizován
Vážený Paule,
Zkuste prosím následující kód VBA.

Soukromá dílčí tabulka_Změna (ByVal Target As Range)
Dim xRg jako rozsah
On Error Resume Next
Nastavit xRg = Intersect(Rozsah("A1:a1000,b1:b1000,G1:G1000"), Cíl)
Pokud xRg není nic, pak Exit Sub
Target.Worksheet.Unprotect Password:="123"
xRg.Locked = Pravda
Target.Worksheet.Protect Password:="123"
End Sub

Private Sub Worksheet_BeforeDoubleClick (ByVal Target As Range, Cancel As Boolean)
Application.EnableEvents = False
ActiveSheet.Unprotect Password:="123"
If Not Intersect(Target, Range("A1:a1000")) Is Nothing Then
Zrušit = True
Target.Formula = Datum
End If
If Not Intersect(Target, Range("b1:b1000")) je Nothing Then
Zrušit = True
Target.Formula = Čas
End If
If Not Intersect(Target, Range("g1:g1000")) Is Nothing Then
Zrušit = True
Target.Formula = Čas
End If
ActiveSheet.Protect Password:="123"
Application.EnableEvents = True
End Sub
Tento komentář byl moderátorem webu minimalizován
Zkopíroval jsem a vložil kód aktualizující rozsah a nefungovalo to :-(


Private Sub Worksheet_BeforeDoubleClick (ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("B4:B100")) Is Nothing Then
Zrušit = True
Target.Formula = Now()
End If
End Sub
Tento komentář byl moderátorem webu minimalizován
Dobrý den,
Kód v mém případě funguje dobře. Můžete mi říct svou verzi Office?
Tento komentář byl moderátorem webu minimalizován
Dobrý den, vámi uvedený kód funguje skvěle. Zajímalo by mě, jestli existuje nějaký způsob, jak mít v buňce text „dvojitým kliknutím přidat datum“, dokud nebude zadáno datum. Předem děkuji (snažím se, aby můj dokument byl co nejpříjemnější pro uživatele, abych nezmátl mé spolupracovníky)
Tento komentář byl moderátorem webu minimalizován
Dobrý den, výše uvedený kód mi fungoval skvěle. Teď mě jen zajímá, jestli existuje způsob, jak nechat v buňce zobrazit text „Dvojitým kliknutím zadejte datum“, dokud nezadáte datum. Mým cílem je, aby byl dokument co nejvíce uživatelsky přívětivý. Děkuji předem
Tento komentář byl moderátorem webu minimalizován
Ahoj Travisi,
Nemůžeme upravit kód tak, aby se text zobrazoval přímo v buňce. Alternativně však níže optimalizovaný kód pomůže zobrazit text v komentáři k buňce a komentář bude po dvojitém kliknutí na buňku pro zadání data automaticky odstraněn.

Private Sub Worksheet_SelectionChange (ByVal Target As Range)
If Not Intersect(Target, Range("A1:B10")) Is Nothing Then
Target.NoteText "dvojitým kliknutím přidáte datum"
End If
End Sub

Private Sub Worksheet_BeforeDoubleClick (ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("A1:B10")) Is Nothing Then
Zrušit = True
Target.Comment.Delete
Target.Formula = Datum
End If
End Sub
Tento komentář byl moderátorem webu minimalizován
Ahoj,

Výše uvedený kód jsem zkopíroval a vložil přesně tak, jak je zapsán do prázdného sešitu, ale nefunguje mi to. Díval jsem se na různé zdroje na webu a většina stránek má podobný formát, jak je psáno výše. Myslím, že s mým jazykem VBA je něco špatně nebo některá nastavení nejsou zapnutá. Jakákoli rada by byla velmi oceněna. Používám Excel pro Office 365 MSO (16.0.11001.20097) 32bitový na Windows 10.
Tento komentář byl moderátorem webu minimalizován
Líbí se mi kód a funguje skvěle. Jak toho mohu dosáhnout, když dvojitým kliknutím spustím kód, zobrazí se čas ve vojenském čase?
Tento komentář byl moderátorem webu minimalizován
Ahoj Dylane,
S tím vám bohužel zatím nemohu pomoci. Děkuji za váš komentář.
Tento komentář byl moderátorem webu minimalizován
Myslím, že pokud vyberete vojenský formát času pro tuto buňku z možností Formát -> Číslo -> Čas na vašem listu, mělo by to fungovat. Například nabízí možnost 1:30 nebo 13:30, takže byste jen vybrali 13:30 a mělo by to stačit.
Tento komentář byl moderátorem webu minimalizován
Domníval bych se, že pokud pro tuto buňku vyberete pouze formát vojenského času z možností Číslo -> Formát času, mělo by to být. Například byste vybrali 13:30 místo 1:30 a pak by se mělo zobrazit ve vojenském čase.
Tento komentář byl moderátorem webu minimalizován
Ví někdo, jestli existuje způsob, jak vložit tento kód do Excelu Online? Použil jsem to s verzí pro stolní počítače a fungovalo to skvěle, ale nyní jsme vše migrovali na online platformu a moje razítka data a času po dvojitém kliknutí zmizela a nemohu přijít na to, jak zobrazit nebo upravit kód. Dík.
Tento komentář byl moderátorem webu minimalizován
Tak jsem vložil kód a funguje to skvěle na několika listech v mém sešitu, ale na některých listech to prostě najednou přestane fungovat po určitém řádku, i když mám zadaný správný rozsah. Jakékoli myšlenky na to, proč by se to mohlo stát.
Tento komentář byl moderátorem webu minimalizován
To bylo přesně to, co jsem hledal - ušetří to spoustu času a oceňuji dobře napsané pokyny. Děkuji!
Tento komentář byl moderátorem webu minimalizován
Dobrý den, kód pro mě udělal hodně. Jak mohu omezit, aby kód fungoval pouze v případě, že je pole prázdné. Pokud je již v buňce datum, dvojité kliknutí by nemělo dělat nic, pozdravy
Tento komentář byl moderátorem webu minimalizován
Ahoj Ahmade,
Omlouvám se za potíže. Chcete-li pouze dvojitým kliknutím vyplnit prázdné buňky daty, můžete to provést pomocí následujícího kódu VBA.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Updated by Extendoffice 20220609
    If Not Intersect(Target, Range("B1:C20")) Is Nothing Then
        If Target.Value = "" Then
            Cancel = True
            Target.Formula = Date
        End If
    End If
End Sub
Tento komentář byl moderátorem webu minimalizován
Tato funkce nefungovala. Dvojité kliknutí jednoduše vstoupí do ruční úpravy buňky.
Tento komentář byl moderátorem webu minimalizován
Ahoj Bobe,
Kód v mém případě funguje dobře. Potřebuji vědět konkrétněji o vašem problému, jako je vaše verze Excelu.
A kód funguje pouze na vámi zadaných buňkách.
Tento komentář byl moderátorem webu minimalizován
Zdravím všechny,

Snažím se použít toto makro k použití datového razítka dvojitým kliknutím na sloupec E a funguje to, ale když se pokusím replikovat makro, abych udělal totéž, ale pro aktuální čas ve sloupci F to nefunguje, jak vidíte připojeno, mám chybová zpráva oznamující: Bylo zjištěno nejednoznačné jméno.
Když se pokusím změnit část Sub WorkSheet na jiný název a dvakrát kliknu na buňky, nic se nestane.

Mohl by mi s tím někdo pomoci?

Můj kód:


Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("E1:E10000")) je pak nic
Zrušit = True
Target.Formula = Datum
End If
End Sub

Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("F1:F10000")) Is Nothing Then
Zrušit = True
Target.Formula = Now()
End If
End Sub
Tento komentář byl moderátorem webu minimalizován
Ahoj Louis,
Replikace makra způsobí dvě stejné procedury se stejným názvem v okně kódu jednoho listu. Excel neumožňuje dva nebo více stejných názvů funkcí v modulu. Ani v Událostech. Vede to k nejednoznačnosti.
Pokud chcete u stejné události provést jiný úkol, musíte upravit původní kód tak, aby vyhovoval vašim potřebám.
Následující kód VBA vám může pomoci. Zkuste to prosím.
Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Updated by Extendoffice 20221025
    If Not Intersect(Target, Range("E1:E10000")) Is Nothing Then
        Cancel = True
        Target.Formula = Date
    End If
    If Not Intersect(Target, Range("F1:F10000")) Is Nothing Then
        Cancel = True
        Target.Formula = Date
    End If
End Sub
Zatím zde nejsou žádné komentáře
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