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

Hvordan registreres dato og tid automatisk, når cellen ændres?

Det er let for os at indsætte statisk dato og klokkeslæt manuelt eller indsætte en dynamisk dato, der ændres med systemtiden med en formel. Hvis du automatisk vil registrere dato og klokkeslæt, når du ændrer eller indtaster værdier, kan dette problem være noget andet at håndtere. Men i denne artikel kan du løse denne opgave med følgende trin.

Optag dato og klokkeslæt automatisk, når cellen ændres med VBA-kode

Fanen Office Aktiver redigering og browsing med faner i Office, og gør dit arbejde meget lettere ...
Kutools til Excel løser de fleste af dine problemer og øger din produktivitet med 80%
  • Genbrug alt: Tilføj de mest anvendte eller komplekse formler, diagrammer og alt andet til dine favoritter, og genbrug dem hurtigt i fremtiden.
  • Mere end 20 tekstfunktioner: Uddrag nummer fra tekststreng; Uddrag eller fjern en del af teksterne; Konverter tal og valutaer til engelske ord.
  • Flet værktøjer: Flere arbejdsbøger og ark til én; Flet flere celler / rækker / kolonner uden at miste data; Flet duplikatrækker og sum.
  • Opdel værktøjer: Opdel data i flere ark baseret på værdi; Én projektmappe til flere Excel-, PDF- eller CSV-filer; En kolonne til flere kolonner.
  • Indsæt spring Skjulte / filtrerede rækker; Tæl og sum af baggrundsfarve; Send personaliserede e-mails til flere modtagere i bulk.
  • Superfilter: Opret avancerede filterskemaer og anvend dem på alle ark; Sort efter uge, dag, hyppighed og mere; filtre med fed, formler, kommentar ...
  • Mere end 300 kraftfulde funktioner; Arbejder med Office 2007-2021 og 365; Understøtter alle sprog; Nem implementering i din virksomhed eller organisation.

pil blå højre boble Optag dato og klokkeslæt automatisk, når cellen ændres med VBA-kode

For eksempel har jeg en række værdier, og når jeg ændrer eller skriver nye værdier i kolonne B, vil jeg nu, at der automatisk registreres den aktuelle dato og tid i kolonne C som følgende skærmbillede vist:

doc-opdatering-tid-værdi-ændringer-1

Du kan afslutte denne opgave med følgende VBA-kode. Gør som dette:

1. Hold nede ALT + F11 nøgler til at åbne Vinduet Microsoft Visual Basic til applikationer.

2. Vælg derefter dit brugte regneark fra venstre Projekt Explorer, dobbeltklik på den for at åbne Moduler, og kopier og indsæt derefter følgende VBA-kode i det tomme modul:

VBA-kode: Optag dato og tid automatisk, når cellen ændres

Private Sub Worksheet_Change(ByVal Target As Range)
'Update 20140722
Dim WorkRng As Range
Dim Rng As Range
Dim xOffsetColumn As Integer
Set WorkRng = Intersect(Application.ActiveSheet.Range("B:B"), Target)
xOffsetColumn = 1
If Not WorkRng Is Nothing Then
    Application.EnableEvents = False
    For Each Rng In WorkRng
        If Not VBA.IsEmpty(Rng.Value) Then
            Rng.Offset(0, xOffsetColumn).Value = Now
            Rng.Offset(0, xOffsetColumn).NumberFormat = "dd-mm-yyyy, hh:mm:ss"
        Else
            Rng.Offset(0, xOffsetColumn).ClearContents
        End If
    Next
    Application.EnableEvents = True
End If
End Sub

doc-opdatering-tid-værdi-ændringer-1

3. Gem derefter og luk denne kode for at vende tilbage til regnearket, nu når du ændrer celleværdien eller skriver nye data i kolonne B, registreres dato og klokkeslæt automatisk i kolonne C.

Bemærkninger:

1. I ovenstående kode kan du ændre “B: B”Til enhver anden kolonne, som du vil ændre celleværdierne i dette script: Indstil WorkRng = Skær (Application.ActiveSheet.Range ("B: B"), mål).

2. Med dette xOffsetColumn = 1 script, kan du indsætte og opdatere dato og klokkeslæt til den første kolonne ved siden af ​​din ændrede værdikolonne, du kan ændre nummer 1 til andre tal, såsom 2,3,4,5 ... det betyder, at datoen indsættes anden, tredje, fjerde eller femte kolonne udover din ændrede værdikolonne.

3. Når du sletter en værdi i den ændrede kolonne, fjernes også dato og klokkeslæt.


De bedste Office-produktivitetsværktøjer

Kutools til Excel løser de fleste af dine problemer og øger din produktivitet med 80%

  • Genbruge: Indsæt hurtigt komplekse formler, diagrammer og alt, hvad du har brugt før; Krypter celler med adgangskode Opret postliste og send e-mails ...
  • Super formel bar (let redigere flere linjer med tekst og formel); Læsning Layout (let at læse og redigere et stort antal celler); Indsæt til filtreret rækkevidde...
  • Flet celler / rækker / kolonner uden at miste data; Split celler indhold; Kombiner duplikerede rækker / kolonner... Forhindre duplikerede celler; Sammenlign områder...
  • Vælg Duplicate eller Unique Rækker; Vælg tomme rækker (alle celler er tomme); Super Find og Fuzzy Find i mange arbejdsbøger; Tilfældig valg ...
  • Præcis kopi Flere celler uden at ændre formelreference; Auto Opret referencer til flere ark; Indsæt kugler, Afkrydsningsfelter og mere ...
  • Uddrag tekst, Tilføj tekst, Fjern efter position, Fjern mellemrum; Opret og udskriv personsøgningssubtotaler; Konverter mellem celler indhold og kommentarer...
  • Superfilter (gem og anvend filterskemaer på andre ark); Avanceret sortering efter måned / uge / dag, hyppighed og mere; Specielt filter af fed, kursiv ...
  • Kombiner arbejdsbøger og arbejdsark; Fletabeller baseret på nøglekolonner; Opdel data i flere ark; Batch Konverter xls, xlsx og PDF...
  • Mere end 300 kraftfulde funktioner. Understøtter Office / Excel 2007-2021 og 365. Understøtter alle sprog. Nem implementering i din virksomhed eller organisation. Fuld funktioner 30-dages gratis prøveperiode. 60 dages pengene tilbage garanti.
kte-fane 201905

Fanen Office bringer en grænseflade til et kontor med Office, og gør dit arbejde meget lettere

  • Aktiver redigering og læsning af faner i Word, Excel, PowerPoint, Publisher, Access, Visio og Project.
  • Åbn og opret flere dokumenter i nye faner i det samme vindue snarere end i nye vinduer.
  • Øger din produktivitet med 50 % og reducerer hundredvis af museklik for dig hver dag!
officetab bund
Sorter kommentarer efter
Kommentarer (108)
Ingen vurderinger endnu. Vær den første til at bedømme!
Denne kommentar blev minimeret af moderatoren på webstedet
Hvordan skriver du koden til at gøre dette flere gange på én side Eks. tekst i kolonne B, dato i C og tekst i D, dato i E?
Denne kommentar blev minimeret af moderatoren på webstedet
[quote]Hvordan skriver du koden til at gøre dette flere gange på én side Eks. tekst i kolonne B, dato i C og tekst i D, dato i E?Af Hilary[/quote] Jeg ved, at dette er gammelt, men den lange, men dog nemme måde, er at kopiere variabeldeklarationerne og oprette nye variabler (dvs. WorkRng1 og Rng1). Du skal også kopiere "if"-sætningen og ændre variablerne til de nye variabelnavne.
Denne kommentar blev minimeret af moderatoren på webstedet
[quote]Hvordan skriver du koden til at gøre dette flere gange på én side Eks. tekst i kolonne B, dato i C og tekst i D, dato i E?Af Hilary[/quote] Her er koden: Private Sub Worksheet_Change(ByVal Target As Range) 'Opdater 20140722 Dim WorkRng As Range Dim Rng As Range Dim xOffsetColumn As Integer 'Skift området for at vælge den kolonne, du opdaterer, dvs. ("A: A") eller ("B:B") Indstil WorkRng = Intersect(Application.ActiveSheet.Range("E:E"), Target) xOffsetColumn = 1 'For andet tidsstempel 'Opret nye variabelnavne, såsom WorkRng1, Rng1 osv. Dim WorkRng1 As Range Dim Rng1 As Range Dim xOffsetColumn1 As Integer Set WorkRng1 = Intersect(Application.ActiveSheet.Range("G:G"), Target) xOffsetColumn1 = 1 'For første gangs stempel If Not WorkRng Is Nothing Så Application.EnableEvents = False for hver Rng i WorkRng Hvis ikke VBA.IsEmpty(Rng.Value) Then Rng.Offset(0, xOffsetColumn).Value = Now Rng.Offset(0, xOffsetColumn).NumberFormat = "mm/dd/ yyyy" Else Rng.Offset(0, xOffsetColumn).ClearContents End If Next Application.EnableEvents = True End If 'For anden gang stemple If Not WorkRng1 Is Nothing Then Application.EnableEve nts = False for hver Rng1 I WorkRng1 Hvis ikke VBA.IsEmpty(Rng1.Value) Then Rng1.Offset(0, xOffsetColumn1).Value = Now Rng1.Offset(0, xOffsetColumn1).NumberFormat = "mm/dd/yyyy" Else Rng1.Offset(0, xOffsetColumn1).ClearContents End If Next Application.EnableEvents = True End If End Sub
Denne kommentar blev minimeret af moderatoren på webstedet
Hvad hvis jeg vil gøre dette for en række kolonner?
Denne kommentar blev minimeret af moderatoren på webstedet
ændre området (B:B) sådan her: (10:20) for kolonne 10 til 20 (D5:D40) for kolonne 5 til 40 på række D Håber det hjælper.
Denne kommentar blev minimeret af moderatoren på webstedet
Beklager, jeg bytter kolonner med rækker, men det virker stadig. (D:P) Fra kolonne D til P (D5:D5) fra kolonne D til P på række 5
Denne kommentar blev minimeret af moderatoren på webstedet
når jeg gemmer virker det, men når jeg åbner igen virker det ikke
Denne kommentar blev minimeret af moderatoren på webstedet
[citat] når jeg gemmer virker det, men når jeg genåbner virker det ikkeAf Aarif[/quote] Samme problem som Aarif... Det virkede en godbid for en halv time siden, og nu gør det det ikke... også, jeg ville kun have klokkeslættet ikke datoen OG klokkeslættet, så jeg redigerede ".NumberFormat" til at være bare hh:mm:ss, gemt, testet det... ikke anderledes... stadig at sætte dato og klokkeslæt...? åbnede VB'en igen, og skrev noget afgrænset tekst, gemte igen, stadig ikke godt, så gjorde jeg det en tredje gang, og formatet gjorde som det blev fortalt og pludselig fik jeg lige tiden. MEGET mærkeligt, jeg har længe troet, at Excel er hjemsøgt, lige siden jeg første gang brugte SØG-funktionen, og søgte efter en værdi i en celle, som jeg kunne se med mine egne øjne, men Excel insisterede på, at den ikke eksisterede!? Nogle Excel-guruer eller eksorcister, der kan hjælpe? hvorfor ignorerer den min VB og IKKE tidsstempler som den gjorde...? tak :cry:
Denne kommentar blev minimeret af moderatoren på webstedet
[quote]Hvordan skriver du koden til at gøre dette flere gange på én side Eks. tekst i kolonne B, dato i C og tekst i D, dato i E?Af Hilary[/quote] hvad er svaret på citatet
Denne kommentar blev minimeret af moderatoren på webstedet
Hvad hvis jeg vil have dette til at køre, men ikke er på et aktivt ark, så kør i baggrunden og opdater, når der er en post i B-kolonnen?
Denne kommentar blev minimeret af moderatoren på webstedet
Hvad hvis kolonnen, der påvirker tidsstempelkolonnen, er summen af ​​flere andre kolonner? For eksempel... Kolonne H er =Sum(E+F+G), og jeg vil gerne have et tidsstempel udført i kolonne I, hver gang kolonne H er blevet ændret, eller i det væsentlige, når kolonne E, F eller G er blevet ændret . Kan du venligst hjælpe??
Denne kommentar blev minimeret af moderatoren på webstedet
Jeg har brug for hjælp! Jeg forsøger at få lavet et tidsstempel, hver gang en af ​​tre celler ændres. Jeg vil ideelt set gerne gøre dette, når summen af ​​disse celler er blevet ændret. For eksempel. Cellerne E, F, G vil blive ændret, og celle H vil være SUMMEN af disse tre celler. Når celle H er blevet ændret, vil jeg gerne have, at celle I bliver tidsstemplet. Er dette muligt?? Mange tak
Denne kommentar blev minimeret af moderatoren på webstedet
Jeg forsøger at køre ovenstående kode; dog er den celle, hvis ændring jeg vil optage, knyttet til et afkrydsningsfelt og er derfor enten "TRUE" eller "FALSE". Af en eller anden grund virker koden ikke, når cellen ændres. Men hvis jeg indsætter sige "ja" manuelt, fungerer koden fint. Er der nogen løsning til dette problem, som du er klar over? Tak skal du have!
Denne kommentar blev minimeret af moderatoren på webstedet
Er det muligt at gøre dette for historiske data? Hvis jeg lavede ændringer i en celle i går eller for en måned siden, kan jeg så bruge en form af denne kode til at hente disse datoer?
Denne kommentar blev minimeret af moderatoren på webstedet
Er der en måde at tidsstemple baseret på en specifik ændring? For eksempel har jeg et regneark med en kolonne med drop-down muligheder, herunder at være tom, 'Ok' og 'Act'. Når opgaven er fuldført, bruges rullemenuen manuelt til at vælge 'Ok'. Jeg vil gerne have, at datostempelet er knyttet til, når 'Ok' er valgt, men ikke når 'Act' er valgt. Muligheden 'Act' i rullemenuen bruges, når en opgave er forfalden, men jeg forsøger egentlig bare at spore, hvornår et emne er afsluttet. Er der en måde at opnå dette med ovenstående kode? Tak!
Denne kommentar blev minimeret af moderatoren på webstedet
Var du i stand til at løse dette?
Denne kommentar blev minimeret af moderatoren på webstedet
det er et meget godt spørgsmål. har du ordnet det, kan du venligst dele vejen?
tak
Denne kommentar blev minimeret af moderatoren på webstedet
Jeg kan ændre intervallet til at være ("A:Q"), men jeg har brug for, at datoen og klokkeslættet går i "S", hvis dataene i en AQ-celle ændres/fjernes. Jeg er VBA udfordret. Enhver hjælp er meget værdsat!
Denne kommentar blev minimeret af moderatoren på webstedet
Beklager, jeg har lige postet et spørgsmål, og jeg har brug for svaret på dette...jeg må have misset denne kommentar...forhåbentlig kan nogen hjælpe!
Denne kommentar blev minimeret af moderatoren på webstedet
Hvordan ændrer jeg det, så kun den tilstødende celledato ændres?
Denne kommentar blev minimeret af moderatoren på webstedet
Hvordan får jeg tidsstemplet til at optage i en bestemt celle i stedet for cellen ved siden af ​​den, der blev ændret. Jeg forsøger at få en række celler tidsstemplet, når der sker en ændring i nogen af ​​disse celler. Jeg vil gerne have tidsstemplet til at optage i en bestemt celle...kan nogen hjælpe med dette? Tak skal du have!
Denne kommentar blev minimeret af moderatoren på webstedet
Hej, tak for dette, da det er fantastisk til WB-reviderbarhed. Er der en måde at ændre dette på, så datoen/klokkeslættet logges et sted på WB'en, når en kommentar tilføjes eller ændres? Jeg ved, at dette er et generelt spørgsmål, men jeg er ikke sikker på, om det er muligt (desværre for MS 2010, indeholder .comment-egenskaben ikke en date-egenskab til at identificere, hvornår den blev indtastet. Mike
Denne kommentar blev minimeret af moderatoren på webstedet
Hvordan kan jeg konfigurere til kun at læse A:A-kolonnen og give tidsstempel i B:B, når der er indtastet et 14-cifret tal i den?
Denne kommentar blev minimeret af moderatoren på webstedet
Hej, jeg har brug for hjælp til VBA-kodning. Jeg laver et regneark med sager, som vil blive tildelt personer og har sagsstatus. Modtagerens vil være i Col H, og jeg har brug for et datostempel i Col I, når cellen i Col H bliver opdateret eller ændret med et navn. På samme måde vil jeg have sagsstatus i Col J og skal bruge et datostempel i Col K, når en status bliver indtastet eller ændret. også når der er navn eller status, som ikke er overdraget, skal datostemplet i Col I og K være tomt. Enhver hjælp ville blive værdsat. Tak
Denne kommentar blev minimeret af moderatoren på webstedet
Jeg fandt denne kode et andet sted og ændrede den til mit brug. Hvis det gøres korrekt, behøver du ikke bekymre dig om at indtaste en funktion i en celle, eller at filen ændrer datoerne til den pågældende dags dato, hver gang den åbnes. - åbn Excel - tryk på "Alt+F11" - Dobbeltklik på det regneark, som du vil anvende ændringen til (listet til venstre) - kopier/indsæt koden nedenfor - juster Range(_:_)-inputtet, så det svarer til til den kolonne, du vil opdatere - juster Offset(0,_)-inputtet til at svare til den kolonne, hvor du vil have datoen vist (i versionen nedenfor laver jeg opdateringer til kolonne D, og ​​jeg vil have datoen vist i kolonne F, derfor indtastningen af ​​"2" for 2 kolonner over fra kolonne D) - tryk på Gem - gentag trin ovenfor, hvis der er andre regneark i din projektmappe, der har brug for den samme kode - du skal muligvis ændre talformatet for den kolonne, der viser dato til "Generelt" og øg kolonnens bredde, hvis den viser "####", efter du har lavet en opdateret indtastning. Kopier/Sæt ind kode nedenfor: __________________________________________________________________________ Privat underarbejdsark_ændre(ByVal Target As Range) If Intersect(Target, Range(" D:D")) Is Nothing Then Exit Sub Target.Offset(0, 2) = Date End Sub ___ _________________________________________________________ Held og lykke...
Denne kommentar blev minimeret af moderatoren på webstedet
denne kode vil vise dato på klik, den vises, er det muligt kun at vise dato, når indholdet i cellen er ændret, hvis der kun klikkes og intet ændres, så viser datoen ikke eller tidligere indtastet dato forbliver?
Denne kommentar blev minimeret af moderatoren på webstedet
Når jeg optager i makro, er en vloocup-formel, så hvordan kan jeg ændre den dato automatisk til 1 dag op.
Denne kommentar blev minimeret af moderatoren på webstedet
udskift denne linje
Rng.Offset(0, xOffsetColumn).Værdi = Nu

til
Rng.Offset(0, xOffsetColumn).Værdi = Nu+1
Denne kommentar blev minimeret af moderatoren på webstedet
Mange tak for koden! Præcis hvad jeg ledte efter!!
Denne kommentar blev minimeret af moderatoren på webstedet
Tak for din hjælp :-)
Der er endnu ingen kommentarer her
Load More

Følg os

Copyright © 2009 - www.extendoffice.com. | Alle rettigheder forbeholdes. Drevet af ExtendOffice. | | Sitemap
Microsoft og Office-logoet er varemærker eller registrerede varemærker tilhørende Microsoft Corporation i USA og / eller andre lande.
Beskyttet af Sectigo SSL