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

Hur infogar jag datumstämpel i en cell om det är markerat i kryssrutan i Excel?

Normalt anger du en datumstämpel med hjälp av snabbtangenter i Excel. Vad sägs om att infoga datumstämpel i en cell med en kryssruta i Excel? När du markerar kryssrutan infogas tidsstämpeln automatiskt i en angiven cell. Den här artikeln hjälper dig att lösa det.

Infoga datumstämpel i en cell om det är markerat i en kryssruta med VBA-kod


Infoga datumstämpel i en cell om det är markerat i en kryssruta med VBA-kod

Detta avsnitt kommer att introducera ett VBA-skript som hjälper dig att infoga en datumstämpel i en cell automatiskt om du markerar en kryssruta i Excel. Gör så här.

1. När du har satt i en kryssruta trycker du på andra + F11 samtidigt för att öppna Microsoft Visual Basic för applikationer fönster.

2. I Microsoft Visual Basic för applikationer fönstret klickar Insert > Modulerna. Kopiera och klistra in nedanstående VBA-kod i modulfönstret.

VBA-kod: Infoga datumstämpel i en cell om det är markerat i kryssrutan

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. Tryck andra + Q för att stänga Microsoft Visual Basic för applikationer fönster.

4. Högerklicka på kryssrutan och välj Tilldela Micro från högerklickmenyn. Se skärmdump:

5. I Tilldela makro dialogrutan väljer du CheckBox_Date_Stamp i Makronamn och klicka sedan på OK knapp. Se skärmdump:

När du markerar kryssrutan infogas datumstämpeln automatiskt i den intilliggande cellen.


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 (22)
Inga betyg än. Bli först med att betygsätta!
Denna kommentar minimerades av moderatoren på webbplatsen
Tack, detta var till stor hjälp, jag skulle vilja notera att jag tycker att det är mer användbart att ha datumstämpeln till vänster om kryssrutan. för att göra detta ändrar du bara offset till (, -1)
Denna kommentar minimerades av moderatoren på webbplatsen
Finns det något sätt att göra detta med datum OCH tid? Tack för infon i alla fall!
Denna kommentar minimerades av moderatoren på webbplatsen
Sub CheckBox_Date_Stamp() Dim xChk As CheckBox Set xChk = ActiveSheet.CheckBoxes(Application.Caller) With xChk.TopLeftCell.Offset(, 1) If xChk.Value = xlOff Sedan .Value = "" Else .Value = Datum & " Tid Slut Om Slut Med Slut Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Hej,
Vänligen använd nedanstående VBA-kod för att lägga till datum och tid.

Sub CheckBox_Date_Stamp()
Dim xChk Som kryssruta
Ställ in xChk = ActiveSheet.CheckBoxes(Application.Caller)
Med xChk.TopLeftCell.Offset(, 1)
Om xChk.Value = xlOff Då
.Value = ""
annars
.Value = Nu()
End If
Sluta med
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
HEJ Jag provade den här formeln och den fungerade bara för A1 och B1 när jag tillämpade makrot på kryssrutan i A1. Men när jag tillämpade makrot på kryssrutan i A2 hände ingenting i B2. Och hur skulle formeln ändras om jag ville använda detta för en checklista? Om kolumn A var kryssrutorna och kolumn C slutfördes datum.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej:) du kan kopiera cellen med kryssrutan i A1 till resten av kolumnen. eller tilldela makrot individuellt till varje kryssruta
Denna kommentar minimerades av moderatoren på webbplatsen
God dag,
Tilldela makrot individuellt till varje kryssruta.
Denna kommentar minimerades av moderatoren på webbplatsen
Jag kopierade och klistrade in VBA-koden exakt, men på mitt kalkylblad visas datumet i cellen ovanför och till höger om kryssrutans kolumn, inte i cellen direkt till höger. ?
Denna kommentar minimerades av moderatoren på webbplatsen
Jag har också exakt samma problem. "HJÄLP! Jag behöver någon HJÄLP! Inte vem som helst HJÄLP! Du vet att jag behöver någon HJÄLP!
Denna kommentar minimerades av moderatoren på webbplatsen
God dag,
Koden fungerar bra i mitt fall. Efter att ha markerat kryssrutan visas datumet i cellen direkt till höger. Kan du ge en skärmdump av ditt fall. Och vilken Office-version använder du. Tack.
Denna kommentar minimerades av moderatoren på webbplatsen
Jag hade samma problem med datum- och tidsstämpeln i cellen ovanför den avsedda cellen (med Excel 2007). Jag gick vidare och ändrade "offset"-formeln så att den går över en cell OCH ner en cell och nu visas stämpeln där jag vill ha den: Med xChk.TopLeftCell.Offset(1, 1)
Jag uppdaterar ett kalkylblad som någon annan skapade och inte skapade kryssrutorna, men det kan ha att göra med var i cellen kryssrutan är placerad. Jag fick olika resultat när jag placerade kryssrutan i linje med botten av cellen.

Hoppas det hjälper!
Denna kommentar minimerades av moderatoren på webbplatsen
Det här är vad jag gjorde för att åtgärda problemet

Sub CheckBox_Date_Stamp()
Dim xChk Som kryssruta
Ställ in xChk = ActiveSheet.CheckBoxes(Application.Caller)
Med xChk.TopLeftCell.Offset(1, 1)
Om xChk.Value = xlOff Då
.Value = ""
annars
.Value = Nu()
End If
Sluta med
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Hej! Tack för koden. Det fungerar perfekt med en lil tweaking på offset. Men jag arbetade på ett ark som har många många många rader (~500+ rader) som innehåller mängder av kryssrutor och filstorleken växte avsevärt. Finns det något sätt att minska storleken? Något alternativt sätt att göra detta på?

Tack!
Denna kommentar minimerades av moderatoren på webbplatsen
Bra da
Om det finns många kryssrutor i rader och du vill agera på alla kryssrutor samtidigt, kan nedanstående VBA-kod hjälpa dig.
Kopiera koderna till ett modulkodfönster, gå tillbaka till kalkylbladet och skapa en knapp (som en knapp (formulärkontroll)), tilldela makrot SetAllChkChange() till knappen och klicka sedan på knappen för att köra koden.

Nu har alla kryssrutor i raderna i ditt kalkylblad aktiverats. Du kan markera någon av dem för att infoga datumstämpel i dess intilliggande cell.

Sub SetAllChkChange()
Dim xChks
Dim xChk Som kryssruta
Dim xI As Long
On Error Resume Next
Radera xArrChk
Ställ in xChks = ActiveSheet.CheckBoxes
ReDim Preserve xArrChk(1 To xChks.count)
xI = 1
För varje xChk In xChks
xChk.Select
Selection.OnAction = "ObjChkChange"
Nästa
End Sub


Sub ObjChkChange()
Dim xChk Som kryssruta
Ställ in xChk = ActiveSheet.CheckBoxes(Application.Caller)
Med xChk.TopLeftCell.Offset(, 1)
Om xChk.Value = xlOff Då
.Value = ""
annars
.Värde = Datum
End If
Sluta med
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
hur får jag datumstämpeln att visas under min kryssruta?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej! Jag kan inte hitta ett sätt där datumstämpeln kommer att finnas på sidan av kryssrutan. Jag försökte ändra offsetvärdet från 0, 1 och -1. Kan du hjälpa mig med det här? tack!
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, antar att din kryssruta är i A2 och vill mata ut datumstämpeln till höger om kryssrutan (i det här fallet är det B2), vänligen ändra Offset-värdet till Offset(1, 1).
Denna kommentar minimerades av moderatoren på webbplatsen
Jag använde VBA för kryssrutan tidsstämpel, men de två första cellerna fungerar inte korrekt. Min första kryssruta är i A2, när jag markerar rutan så läggs tiden i B1. Hur fixar jag detta?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Steve,
Vänligen ersätt den fjärde raden i koden med With xChk.TopLeftCell.Offset(1, 1).
Denna kommentar minimerades av moderatoren på webbplatsen
Tack så mycket!! Lysande! Tack!
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, hur kan jag loopa koden för att inkludera alla kryssrutor i kolumnen?
Denna kommentar minimerades av moderatoren på webbplatsen
God dag,
Om det finns många kryssrutor i rader och du vill agera på alla kryssrutor samtidigt, kan nedanstående VBA-kod hjälpa dig.
Kopiera koderna nedan till ett modulkodfönster, gå tillbaka till arbetsbladet och skapa en knapp (som en knapp (formulärkontroll)), tilldela makrot SetAllChkChange() till knappen och klicka sedan på knappen för att köra koden.

Nu har alla kryssrutor i raderna i ditt kalkylblad aktiverats. Du kan markera någon av dem för att infoga datumstämpel i dess intilliggande cell.

Sub SetAllChkChange()
'Uppdaterad av Extendoffice 20211130
Dim xChks
Dim xChk Som kryssruta
On Error Resume Next
Ställ in xChks = ActiveSheet.CheckBoxes
För varje xChk In xChks
xChk.Select
Selection.OnAction = "ObjChkChange"
Nästa
End Sub

Sub ObjChkChange()
Dim xChk Som kryssruta
Ställ in xChk = ActiveSheet.CheckBoxes(Application.Caller)
Med xChk.TopLeftCell.Offset(, 1)
Om xChk.Value = xlOff Då
.Value = ""
annars
.Värde = Datum
End If
Sluta med
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