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

Cum se adaugă automat / se introduce data / ora curentă într-o celulă cu dublu clic în Excel?

Dacă trebuie să inserați frecvent data sau ora curentă într-o foaie de lucru, puteți încerca metoda din acest articol. Acest articol vă va ajuta să adăugați sau să introduceți automat data curentă sau data curentă într-un interval specificat de celule cu doar dublu clic.

Faceți dublu clic pentru a adăuga / introduce automat data curentă sau data dată cu codul VBA


Faceți dublu clic pentru a adăuga / introduce automat data curentă sau data dată cu codul VBA

Puteți rula codul VBA de mai jos pentru a adăuga automat data curentă sau data dată într-o celulă cu dublu clic. Vă rugăm să faceți următoarele.

1. Faceți clic dreapta pe fila Sheet pe care doriți să inserați data curentă în celulele specificate, apoi selectați Afișați codul din meniul cu clic dreapta.

2. În Microsoft Visual basic pentru aplicații fereastră, copiați și lipiți codul VBA de mai jos în fereastra Cod.

Cod VBA: faceți dublu clic pentru a adăuga data curentă într-o celulă

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

notițe:

1. În cod, A1: B10 este intervalul la care veți adăuga data curentă.
2. Dacă trebuie să adăugați data curentă în celulă, vă rugăm să înlocuiți Data cu Acum() în cod. Le puteți schimba după cum aveți nevoie.

3. presa Alt + Q tastele simultan pentru a închide Microsoft Visual Basic pentru aplicații fereastră și reveniți la foaia de lucru.

De acum înainte, când faceți dublu clic pe orice celulă din intervalul specificat A1: B10. Data sau ora curentă vor fi introduse automat.


Articole pe aceeași temă:


Cele mai bune instrumente de productivitate Office

Kutools pentru Excel vă rezolvă majoritatea problemelor și vă crește productivitatea cu 80%

  • reutilizarea: Introduceți rapid formule complexe, diagrame și orice ai folosit anterior; Criptați celulele cu parola; Creați o listă de corespondență și trimiteți e-mailuri ...
  • Super Formula Bar (editați cu ușurință mai multe linii de text și formulă); Layout de citire (citiți și editați cu ușurință un număr mare de celule); Lipiți la interval filtrat...
  • Merge celule / rânduri / coloane fără a pierde date; Conținut de celule divizate; Combinați rânduri / coloane duplicate... Prevenirea celulelor duplicate; Comparați gamele...
  • Selectați Duplicat sau Unic Rânduri; Selectați Rânduri goale (toate celulele sunt goale); Super Find și Fuzzy Find în multe cărți de lucru; Selectare aleatorie ...
  • Copie exactă Mai multe celule fără modificarea referinței formulelor; Creați automat referințe la foi multiple; Introduceți gloanțe, Casete de selectare și multe altele ...
  • Extrageți textul, Adăugați text, eliminați după poziție, Eliminați spațiul; Creați și imprimați subtotaluri de paginare; Convertiți conținutul dintre celule și comentarii...
  • Super Filtru (salvați și aplicați scheme de filtrare altor foi); Sortare avansată după lună / săptămână / zi, frecvență și multe altele; Filtru special cu bold, italic ...
  • Combinați cărți de lucru și foi de lucru; Merge Tables pe baza coloanelor cheie; Împărțiți datele în mai multe foi; Conversia în loturi xls, xlsx și PDF...
  • Peste 300 de funcții puternice. Suportă Office / Excel 2007-2021 și 365. Acceptă toate limbile. Implementare ușoară în întreprinderea sau organizația dvs. Funcții complete Probă gratuită de 30 de zile. Garanție de returnare a banilor de 60 de zile.
fila kte 201905

Fila Office aduce interfața cu file în Office și vă face munca mult mai ușoară

  • Activați editarea și citirea cu file în Word, Excel, PowerPoint, Publisher, Access, Visio și Project.
  • Deschideți și creați mai multe documente în filele noi ale aceleiași ferestre, mai degrabă decât în ​​ferestrele noi.
  • Vă crește productivitatea cu 50% și reduce sute de clicuri de mouse pentru dvs. în fiecare zi!
fundul officetab
Comentarii (28)
Încă nu există evaluări. Fii primul care evaluează!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Cum extindem acest lucru pentru a adăuga mai multă gamă de celule? Am adăugat o celulă suplimentară la cod: (Target, Range ("C10:C19", "D10:D19", "E10:E19")), cu toate acestea, îmi dă o eroare de compilare care spune „număr greșit de argumente sau atribuiri de proprietăți nevalide” și apoi evidențiază prima linie de cod pe care ați furnizat-o „Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)” Vă rugăm să mă ajutați.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Joel, nu știu dacă mai cauți o soluție, dar trebuie să-ți schimbi codul:

De la: (Target, Range ("C10:C19", "D10:D19", "E10:E19"))
Către: (Target, Range ("C10:C19, D10:D19, E10:E19"))

Acest lucru o va face pentru tine.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Salut Nick,
Aș dori să primesc un sfat de la dvs. pe acest subiect...
Am un fișier pe care îl numesc „foaie de productivitate”.... Pe această foaie aș dori să inserez ora reală, în celulele selectate, când se face clic pe celulă... (Dacă este posibil, aș dori aceste celule după ce timpul pare să devină neschimbabil .....ceva de genul a fi blocat.)
Apreciez timpul acordat și vă mulțumesc anticipat
Attila, Ungaria
exyzee@gmail.com
Acest comentariu a fost redus la minimum de moderatorul de pe site
Dragă Attila,
Vă rugăm să încercați captura de ecran de mai jos pentru a insera timpul real până la celulă într-un interval certian atunci când se face clic pe aceasta.
(Funcția de blocare automată a celulelor nu poate fi realizată, îmi pare rău pentru asta)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = Fals
Dacă nu se intersectează (țintă, interval ("A1:B10")) este nimic, atunci
Anulare = Adevărat
Target.Formula = Data
Final, dacă
End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Codul chiar funcționează... Mulțumesc... am adăugat un alt cod pentru a proteja celula după introducerea datelor. Acum problema este că, odată ce introduc datele și celula este protejată și, din greșeală, dacă dau dublu clic pe celula protejată, atunci codul de mai sus merge prost pentru întreaga foaie. Nu merge atunci. Trebuie să deprotejez foaia pentru a aduce codul live. Vreo solutie?

Codul de protecție folosit este mai jos:

Subsol de lucrări private_Change (țintă ByVal ca rază de acțiune)
Dim xRg As Range
La data de eroare CV următoare
Set xRg = Intersect(Range("A1:a1000,b1:b1000,G1:G1000"), Target)
Dacă xRg nu este nimic, ieșiți din sub
Target.Worksheet.Unprotect Password:="123"
xRg.Locked = Adevărat
Target.Worksheet.Protect Password:="123"
End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Dragă Paul,
Incerc codul pe care l-ai dat. Întreaga foaie de lucru va fi protejată imediat după ce voi introduce date în oricare dintre celulele protejate specificate.
În plus, când faceți dublu clic pe celula protejată, codul nu se modifică în cazul meu.
Ați explica ce încercați să faceți exact cu codul?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Îmi pare rău că înțeleg punctul tău. (pierdeți codul de mai sus)
Acest comentariu a fost redus la minimum de moderatorul de pe site
Codul de intrare dublu clic creat este:


Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dacă nu se intersectează(țintă, interval("A1:a1000")) nu este nimic, atunci
Anulare = Adevărat
Target.Formula = Data
Final, dacă

Dacă nu se intersectează (țintă, interval ("b1:b1000")) nu este nimic, atunci
Anulare = Adevărat
Target.Formula = Timp
Final, dacă

Dacă nu se intersectează (țintă, interval ("g1:g1000")) nu este nimic, atunci
Anulare = Adevărat
Target.Formula = Timp
Final, dacă
End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Dragă Paul,
Vă rugăm să încercați următorul cod VBA.

Subsol de lucrări private_Change (țintă ByVal ca rază de acțiune)
Dim xRg As Range
La data de eroare CV următoare
Set xRg = Intersect(Range("A1:a1000,b1:b1000,G1:G1000"), Target)
Dacă xRg nu este nimic, ieșiți din sub
Target.Worksheet.Unprotect Password:="123"
xRg.Locked = Adevărat
Target.Worksheet.Protect Password:="123"
End Sub

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Application.EnableEvents = Fals
ActiveSheet.Unprotect Password:="123"
Dacă nu se intersectează(țintă, interval("A1:a1000")) nu este nimic, atunci
Anulare = Adevărat
Target.Formula = Data
Final, dacă
Dacă nu se intersectează (țintă, interval ("b1:b1000")) nu este nimic, atunci
Anulare = Adevărat
Target.Formula = Timp
Final, dacă
Dacă nu se intersectează (țintă, interval ("g1:g1000")) nu este nimic, atunci
Anulare = Adevărat
Target.Formula = Timp
Final, dacă
ActiveSheet.Protect Password:="123"
Application.EnableEvents = Adevărat
End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Am copiat și lipit codul actualizând intervalul și nu a funcționat :-(


Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dacă nu se intersectează (țintă, interval ("B4:B100")) nu este nimic, atunci
Anulare = Adevărat
Target.Formula = Acum()
Final, dacă
End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună ziua,
Codul funcționează bine în cazul meu. Îmi puteți spune versiunea dvs. de Office?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună ziua, codul pe care l-ați dat funcționează excelent. Sunt doar curios dacă există vreo modalitate de a avea textul „dublu clic pentru a adăuga data” în celulă până când este introdusă data. Vă mulțumesc anticipat (încerc să fac documentul meu cât mai ușor de utilizat pentru a nu-mi deruta colegii)
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună ziua, codul de mai sus a funcționat excelent pentru mine. Acum mă întreb doar dacă există o modalitate de a face ca textul „Dublu clic pentru a introduce data” să apară în celulă până când este introdusă data. Scopul meu este să fac documentul să fie cât mai ușor de utilizat. Vă mulțumesc anticipat
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună Travis,
Nu putem modifica codul pentru ca textul să fie afișat direct în celulă. Dar, alternativ, codul optimizat de mai jos va ajuta la afișarea textului în comentariul celulei, iar comentariul va fi eliminat automat după dublu clic pe celulă pentru a introduce data.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dacă nu se intersectează (țintă, interval ("A1:B10")) este nimic, atunci
Target.NoteText „dublu clic pentru a adăuga data”
Final, dacă
End Sub

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dacă nu se intersectează (țintă, interval ("A1:B10")) este nimic, atunci
Anulare = Adevărat
Țintă.Comentează.Șterge
Target.Formula = Data
Final, dacă
End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Salut,

Am copiat și lipit codul de mai sus exact așa cum este scris într-un registru de lucru gol, cu toate acestea, nu funcționează pentru mine. M-am uitat la diferite surse de pe web și majoritatea site-urilor au un format similar cu cel scris mai sus. Cred că poate există ceva în neregulă cu VBA-ul meu sau unele setări nu sunt activate. Orice sfat ar fi foarte apreciat. Rulez Excel pentru Office 365 MSO (16.0.11001.20097) pe 32 de biți pe Windows 10.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Iubește codul și funcționează grozav. Cum pot face acest lucru atunci când dau dublu clic pentru a executa codul care arată timpul în timpul militar?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună Dylan,
Îmi pare rău că nu te pot ajuta încă cu asta. Multumesc pentru comentariu.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Cred că dacă selectați formatul de timp militar pentru acea celulă din opțiunile Format -> Număr -> Ora din foaia dvs., care ar trebui să funcționeze. De exemplu, oferă opțiunea 1:30 PM sau 13:30, așa că ați selecta doar 13:30 și asta ar trebui să facă acest lucru.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Aș crede că dacă selectați doar formatul Ora militară pentru acea celulă din opțiunile Număr -> Format oră, ar trebui să o facă. De exemplu, ați selecta 13:30 în loc de 1:30 PM, iar apoi ar trebui să se afișeze în timp militar.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Știe cineva dacă există o modalitate de a introduce acest cod în Excel Online? L-am folosit cu versiunea desktop și a funcționat grozav, dar acum am migrat totul pe platforma online, iar marcajele mele de dată și oră la dublu clic au dispărut și nu îmi pot da seama cum să vizualizez sau să editez codul. Mulțumiri.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Așa că am inserat cod și funcționează grozav pe mai multe foi din registrul meu de lucru, totuși pe unele foi nu mai funcționează brusc după un anumit rând, deși am introdus intervalul corect. Orice gânduri despre de ce s-ar putea întâmpla asta.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Acesta era exact ceea ce căutam - acest lucru economisește o mulțime de timp și apreciez instrucțiunile bine scrise. Mulțumesc!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună ziua, codul a făcut multe pentru mine, Cum pot restricționa codul să funcționeze numai dacă câmpul este gol. Dacă o dată este deja acolo în celulă, dublu clic nu ar trebui să facă nimic, cu respect
Acest comentariu a fost redus la minimum de moderatorul de pe site
Salut Ahmad,
Îmi pare rău pentru deranj. Pentru a completa doar celulele goale cu date cu dublu clic, puteți aplica următorul cod VBA pentru a finaliza.
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
Acest comentariu a fost redus la minimum de moderatorul de pe site
Această funcție nu a funcționat. Făcând dublu clic, se introduce pur și simplu editarea manuală a celulei.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Hi Bob,
Codul funcționează bine în cazul meu. Trebuie să știu mai precis despre problema dvs., cum ar fi versiunea dvs. Excel.
Și codul funcționează numai pe celulele pe care le-ați specificat.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună tuturor,

Încerc să folosesc acea macrocomandă pentru a folosi ștampila dată făcând dublu clic pe coloana E și funcționează, dar când încerc să reproduc macrocomandă pentru a face același lucru, dar pentru ora actuală pe coloana F nu funcționează, așa cum puteți vedea atașat. un mesaj de eroare care spune: Nume ambiguu detectat.
Când încerc să schimb partea Sub WorkSheet cu un alt nume și dau dublu clic în celule, nu se întâmplă nimic.

Ma poate ajuta cineva cu asta?

Codul meu:


Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dacă nu se intersectează (țintă, interval ("E1:E10000")) nu este nimic, atunci
Anulare = Adevărat
Target.Formula = Data
Final, dacă
End Sub

Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dacă nu se intersectează (Target, Range ("F1:F10000")) este nimic, atunci
Anulare = Adevărat
Target.Formula = Acum()
Final, dacă
End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Salut Louis,
Replicarea macrocomenzii va determina două proceduri identice cu același nume într-o singură fereastră de cod de foaie. Excel nu permite două sau mai multe aceleași nume de funcții într-un modul. Nici măcar în Evenimente. Ea duce la ambiguitate.
Dacă doriți să faceți o activitate diferită pentru același eveniment, trebuie să modificați codul original pentru a vă satisface nevoile.
Următorul cod VBA vă poate face o favoare. Vă rugăm să încercați.
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
Nu există comentarii postate aici încă
Lăsa comentarii
Postare ca invitat
×
Evaluează această postare:
0   Caractere
Locații sugerate

Urmărește-ne

Copyright © 2009 - www.extendoffice.com. | Toate drepturile rezervate. Cu sprijinul ExtendOffice. | Harta site-ului
Microsoft și sigla Office sunt mărci comerciale sau mărci comerciale înregistrate ale Microsoft Corporation în Statele Unite și / sau în alte țări.
Protejat de Sectigo SSL