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

Hur lägger jag till / anger automatiskt aktuellt datum / tid i en cell genom att dubbelklicka i Excel?

Om du behöver infoga aktuellt datum eller datum ofta i ett kalkylblad kan du prova metoden i den här artikeln. Den här artikeln hjälper dig att automatiskt lägga till eller ange aktuellt datum eller datum i en angiven intervallceller med bara dubbelklickning.

Dubbelklicka för att automatiskt lägga till / ange aktuellt datum eller datum med VBA-kod


Dubbelklicka för att automatiskt lägga till / ange aktuellt datum eller datum med VBA-kod

Du kan köra nedanstående VBA-kod för att automatiskt lägga till aktuellt datum eller datum i en cell genom att dubbelklicka. Gör så här.

1. Högerklicka på fliken Ark där du vill infoga aktuellt datum i de angivna cellerna och välj sedan Visa kod från högerklickmenyn.

2. I Microsoft Visual Basic för applikationer kopiera och klistra in nedanstående VBA-kod i kodfönstret.

VBA-kod: Dubbelklicka för att lägga till aktuellt datum i en cell

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

Anmärkningar:

1. I koden är A1: B10 det intervall du ska lägga till aktuellt datum till.
2. Om du behöver lägga till aktuell datumtid i cellen, byt ut den Datum med Nu() i koden. Du kan ändra dem efter behov.

3. Tryck andra + Q samtidigt för att stänga Microsoft Visual Basic för applikationer fönstret och återgå till kalkylbladet.

Från och med nu, när du dubbelklickar på en cell i angivet intervall A1: B10. Aktuellt datum eller datum kommer att matas in automatiskt.


Relaterade artiklar:


De bästa Office-produktivitetsverktygen

Kutools för Excel löser de flesta av dina problem och ökar din produktivitet med 80%

  • återanvändning: Sätt snabbt i komplexa formler, diagram och allt som du har använt tidigare; Kryptera celler med lösenord; Skapa e-postlista och skicka e-post ...
  • Super Formula Bar (enkelt redigera flera rader med text och formel); Läslayout (enkelt läsa och redigera ett stort antal celler); Klistra in i filtrerat intervall...
  • Sammanfoga celler / rader / kolumner utan att förlora data; Delat cellinnehåll; Kombinera duplicerade rader / kolumner... Förhindra duplicerade celler; Jämför intervall...
  • Välj Duplicera eller Unikt Rader; Välj tomma rader (alla celler är tomma); Super Find och Fuzzy Find i många arbetsböcker; Slumpmässigt val ...
  • Exakt kopia Flera celler utan att ändra formelreferens; Skapa referenser automatiskt till flera ark; Sätt in kulor, Kryssrutor och mer ...
  • Extrahera text, Lägg till text, ta bort efter position, Ta bort mellanslag; Skapa och skriva ut personsökningstalsatser; Konvertera mellan celler innehåll och kommentarer...
  • Superfilter (spara och tillämpa filterscheman på andra ark); Avancerad sortering efter månad / vecka / dag, frekvens och mer; Specialfilter av fet, kursiv ...
  • Kombinera arbetsböcker och arbetsblad; Sammanfoga tabeller baserat på nyckelkolumner; Dela data i flera ark; Batchkonvertera xls, xlsx och PDF...
  • Mer än 300 kraftfulla funktioner. Stöder Office / Excel 2007-2021 och 365. Stöder alla språk. Enkel implementering i ditt företag eller organisation. Fullständiga funktioner 30 dagars gratis provperiod. 60 dagars pengarna tillbaka-garanti.
kte-flik 201905

Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare

  • Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
  • Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
  • Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!
officetab botten
Sortera kommentarer efter
Kommentarer (28)
Inga betyg än. Bli först med att betygsätta!
Denna kommentar minimerades av moderatoren på webbplatsen
Hur utökar vi detta för att lägga till mer cellområde? Jag lade till en extra cell som varierade till koden: (Target, Range("C10:C19", "D10:D19", "E10:E19")) men det ger mig ett kompileringsfel som säger "fel antal argument eller ogiltiga egenskapstilldelningar" och sedan markerar den den första raden med kod som du angav "Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)" Snälla hjälp mig.
Denna kommentar minimerades av moderatoren på webbplatsen
Joel, vet inte om du fortfarande letar efter en lösning, men du måste ändra din kod:

Från: (Mål, Range("C10:C19", "D10:D19", "E10:E19"))
Till: (Target, Range("C10:C19,D10:D19,E10:E19"))

Detta kommer att göra det åt dig.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej nick
Jag skulle vilja ha lite råd från dig i detta ämne....
Jag har en fil som jag kallar "produktivitetsark".... På det här bladet vill jag infoga den faktiska tiden, i valda celler, när cellen klickas... (Om möjligt skulle jag vilja ha dessa celler efter att tiden verkar bli oföränderlig .....något liknande att vara låst.)
Jag uppskattar din tid och tack på förhand
Attila, Ungern
exyzee@gmail.com
Denna kommentar minimerades av moderatoren på webbplatsen
Kära Attila,
Försök med skärmdumpen nedan för att infoga den faktiska tiden till cell i ett visst intervall när den klickas.
(Funktionen för automatisk låsning av celler kan inte uppnås, förlåt för det)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = False
If Not Intersect(Target, Range("A1:B10")) är ingenting då
Avbryt = Sant
Target.Formula = Datum
End If
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Koden fungerar verkligen... Tack...jag har lagt till en annan kod för att skydda cellen efter inmatning av data. Nu är problemet att när jag väl har skrivit in data och cellen är skyddad och av misstag om jag dubbelklickar på den skyddade cellen, så blir ovanstående kod fel för hela arket. Det går inte då. Jag måste avskydda arket för att få koden live. Någon lösning?

Skyddskoden som används är nedan:

Privata delarkivsförändring (ByVal-mål som område)
Dim xRg As Range
On Error Resume Next
Ställ in xRg = Intersect(Range("A1:a1000,b1:b1000,G1:G1000"), mål)
Om xRg är ingenting, avsluta Sub
Target.Worksheet.Unprotect Password:="123"
xRg.Locked = Sant
Target.Worksheet.Protect Password:="123"
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Kära Paul,
Jag provar koden du angav. Hela kalkylbladet kommer att skyddas omedelbart när jag matar in data i någon av de angivna skyddade cellerna.
Dessutom, när du dubbelklickar på den skyddade cellen ändras ingenting i koden i mitt fall.
Kan du förklara exakt vad du försöker göra med koden?
Denna kommentar minimerades av moderatoren på webbplatsen
Förlåt att jag förstår din poäng. (missar ovanstående kod)
Denna kommentar minimerades av moderatoren på webbplatsen
Dubbelklickningskoden som skapades är:


Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("A1:a1000")) är ingenting då
Avbryt = Sant
Target.Formula = Datum
End If

If Not Intersect(Target, Range("b1:b1000")) är ingenting då
Avbryt = Sant
Målformel = Tid
End If

If Not Intersect(Target, Range("g1:g1000")) är ingenting då
Avbryt = Sant
Målformel = Tid
End If
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Kära Paul,
Försök med följande VBA-kod.

Privata delarkivsförändring (ByVal-mål som område)
Dim xRg As Range
On Error Resume Next
Ställ in xRg = Intersect(Range("A1:a1000,b1:b1000,G1:G1000"), mål)
Om xRg är ingenting, avsluta Sub
Target.Worksheet.Unprotect Password:="123"
xRg.Locked = Sant
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")) är ingenting då
Avbryt = Sant
Target.Formula = Datum
End If
If Not Intersect(Target, Range("b1:b1000")) är ingenting då
Avbryt = Sant
Målformel = Tid
End If
If Not Intersect(Target, Range("g1:g1000")) är ingenting då
Avbryt = Sant
Målformel = Tid
End If
ActiveSheet.Protect Password:="123"
Application.EnableEvents = True
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Jag kopierade och klistrade in koden för att uppdatera intervallet och det fungerade inte :-(


Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("B4:B100")) är ingenting då
Avbryt = Sant
Target.Formula = Now()
End If
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
God dag,
Koden fungerar bra i mitt fall. Kan du berätta din Office-version?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, koden du gav fungerar utmärkt. Jag är bara nyfiken på om det finns något sätt att ha texten "dubbelklicka för att lägga till datum" i cellen tills datumet skrivs in. Tack på förhand (jag försöker göra mitt dokument så användarvänligt som möjligt för att inte förvirra mina medarbetare)
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, ovanstående kod fungerade utmärkt för mig. Nu undrar jag bara om det finns ett sätt att få texten "Dubbelklicka för att ange datum" att visas i cellen tills datumet skrivs in. Mitt mål är att göra dokumentet så användarvänligt som möjligt. Tack på förhand
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Travis,
Vi kan inte ändra koden så att texten visas i cellen direkt. Men alternativt kommer den optimerade koden nedan att hjälpa till att visa texten i cellkommentaren, och kommentaren kommer att tas bort automatiskt efter att dubbelklicka på cellen för att ange datum.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("A1:B10")) är ingenting då
Target.NoteText "dubbelklicka för att lägga till datum"
End If
End Sub

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("A1:B10")) är ingenting då
Avbryt = Sant
Target.Comment.Delete
Target.Formula = Datum
End If
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Hej där,

Jag kopierade och klistrade in ovanstående kod precis som den är skriven i en tom arbetsbok, men det fungerar inte för mig. Jag tittade på olika källor på webben och de flesta sajter har ett liknande format som det som står ovan. Jag tror att det kanske är något fel på min VBA eller så är vissa inställningar inte aktiverade. Alla råd skulle vara mycket uppskattade. Jag kör Excel för Office 365 MSO (16.0.11001.20097) 32-bitars på Windows 10.
Denna kommentar minimerades av moderatoren på webbplatsen
Älskar koden och den fungerar utmärkt. Hur kan jag göra det så när jag dubbelklickar för att exekvera koden att det visar tid i militär tid?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Dylan,
Jag kan tyvärr inte hjälpa dig med det än. Tack för din kommentar.
Denna kommentar minimerades av moderatoren på webbplatsen
Jag tror att om du väljer militärtidsformatet för den cellen från alternativen Format -> Antal -> Tid i ditt ark så borde det fungera. Till exempel ger det alternativet 1:30 eller 13:30, så du skulle bara välja 13:30 och det borde göra det.
Denna kommentar minimerades av moderatoren på webbplatsen
Jag skulle tro att om du bara väljer Militärtidsformatet för den cellen från alternativen Antal -> Tidsformat som borde göra det. Till exempel skulle du välja 13:30 istället för 1:30 PM, och då ska det visas i militär tid.
Denna kommentar minimerades av moderatoren på webbplatsen
Är det någon som vet om det finns ett sätt att infoga den här koden i Excel Online? Jag hade använt det med skrivbordsversionen och det fungerade utmärkt men nu har vi migrerat allt till onlineplattformen och mina datum- och tidsstämplar på dubbelklick har försvunnit och jag kan inte komma på hur jag ska visa eller redigera koden. Tack.
Denna kommentar minimerades av moderatoren på webbplatsen
Så jag infogade kod och det fungerar utmärkt på flera ark i min arbetsbok, men på vissa ark slutar det plötsligt att fungera efter en viss rad trots att jag har angett rätt intervall. Några tankar om varför detta kan hända.
Denna kommentar minimerades av moderatoren på webbplatsen
Det här var precis vad jag letade efter - detta sparar massor av tid och jag uppskattar de välskrivna instruktionerna. Tack!
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, koden gjorde mycket för mig, hur kan jag begränsa koden så att den bara fungerar om fältet är tomt. Om ett datum redan finns där i cellen borde dubbelklick inte göra något, hälsningar
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Ahmad,
Ursäkta besväret. För att endast fylla i de tomma cellerna med datum med dubbelklickning kan du använda följande VBA-kod för att få det gjort.
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
Denna kommentar minimerades av moderatoren på webbplatsen
Denna funktion fungerade inte. Dubbelklickning går helt enkelt in i manuell redigering av cellen.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Bob,
Koden fungerar bra i mitt fall. Jag behöver veta mer specifikt om ditt problem, till exempel din Excel-version.
Och koden fungerar bara på de celler du angav.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej alla,

Jag försöker använda det makrot för att använda datumstämpeln genom att dubbelklicka på kolumn E och det fungerar men när jag försöker replikera makrot för att göra detsamma men för den aktuella tiden på kolumn F fungerar det inte som du kan se bifogat ett felmeddelande som säger: Tvetydigt namn upptäckt.
När jag försöker ändra Sub WorkSheet-delen mot ett annat namn och dubbelklicka i cellerna händer ingenting.

Kan någon hjälpa mig med det?

Min kod:


Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("E1:E10000")) är ingenting då
Avbryt = Sant
Target.Formula = Datum
End If
End Sub

Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("F1:F10000")) är ingenting då
Avbryt = Sant
Target.Formula = Now()
End If
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Louis,
Replikera makrot kommer att orsaka två samma procedurer med samma namn i ett enda arkkodfönster. Excel tillåter inte två eller flera samma namn på funktioner i en modul. Inte ens i Events. Det leder till oklarhet.
Om du vill göra en annan uppgift på samma händelse måste du ändra den ursprungliga koden för att uppfylla dina behov.
Följande VBA-kod kan göra dig en tjänst. Ge det ett försök.
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
Det finns inga kommentarer här ännu
Lämna dina kommentarer
Postar som gäst
×
Betygsätt detta inlägg:
0   Tecken
Föreslagna platser

Följ oss

Copyright © 2009 - www.extendoffice.com. | Alla rättigheter förbehållna. Drivs av ExtendOffice. | | Sitemap
Microsoft och Office-logotypen är varumärken eller registrerade varumärken som tillhör Microsoft Corporation i USA och / eller andra länder.
Skyddad av Sectigo SSL