Namig: drugi jeziki so prevedeni v Google. Lahko obiščete English različico te povezave.
Vpiši se
x
or
x
x
Registracija
x

or

Kako samodejno zapolni datum v celici, ko je sosednja celica posodobljena v Excelu?

Včasih, ko posodobite celico v določenem stolpcu, boste morda želeli označiti zadnji datum o posodobitvi. Ta članek priporoča metodo VBA za rešitev te težave. Ko se celica posodobi, se bo sosednja celica takoj samodejno naselila s trenutnim datumom.

Samodejno zapolni trenutni datum v celici, ko je sosednja celica posodobljena s kodo VBA


Združite več delovnih listov / delovnih zvezkov v enem delovnem listu / delovni zvezki:

Združevanje več delovnih listov ali delovnih zvezkov v enem samem delovnem listu ali delovnem zvezku je lahko ogromna naloga pri vsakodnevnem delu. Ampak, če imate Kutools za Excel, njegova močna koristnost - Združite vam lahko pomagajo hitro kombinirati več delovnih listov, delovnih zvezkov v enega delovnega lista ali delovnega zvezka

Kutools za Excel: z več kot 200 priročnimi dodatki Excel, lahko brezplačno poskusite brez omejitev v dnevih 60. Prenesite brezplačno preizkus Zdaj!


Samodejno zapolni trenutni datum v celici, ko je sosednja celica posodobljena s kodo VBA


Če podate podatke, ki jih želite posodobiti, najde v stolpcu B, in ko posodobite celico v stolpcu B, se bo trenutni datum naselil v sosednji celici stolpca A. Oglejte si posnetek zaslona:

Za rešitev te težave lahko zaženete naslednjo kodo VBA.

1. Z desno miškino tipko kliknite jeziček stanja, ki ga potrebujete za samodejno zapolnjevanje datuma, ki temelji na sosednji posodobljeni celici, in nato kliknite Ogled kode iz menija z desnim klikom.

2. V oknu Microsoft Visual Basic for Applications kopirajte in prilepite spodnjo kodo VBA v okno Code.

VBA koda: samodejno zapolni trenutni datum v celici, ko je sosednja celica posodobljena

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Updated by Extendoffice 2017/10/12
    Dim xRg As Range, xCell As Range
    On Error Resume Next
    If (Target.Count = 1) Then
        If (Not Application.Intersect(Target, Me.Range("B:B")) Is Nothing) Then _
            Target.Offset(0, -1) = Date
        Application.EnableEvents = False
        Set xRg = Application.Intersect(Target.Dependents, Me.Range("B:B"))
        If (Not xRg Is Nothing) Then
            For Each xCell In xRg
                xCell.Offset(0, -1) = Date
            Next
        End If
        Application.EnableEvents = True
    End If
End Sub

Opombe:

1. V kodi B: B pomeni, da posodobljeni podatki najdejo v stolpcu B.

2. -1 označuje, da bo trenutni datum poseljen v levem stolpcu stolpca B. Če želite, da se trenutni datum populira v stolpcu C, spremenite -1 v 1.

3. Pritisnite druga + Q hkrati zaprete tipke Microsoft Visual Basic za aplikacije okno.

Od zdaj naprej, ko posodabljamo celice v stolpcu B, se bo sosednja celica v stolpcu A takoj naselila s trenutnim datumom. Prikaz slike:


Sorodni članki:


Priporočena orodja za produktivnost za Excel

zavihek kte 201905

Kutools za Excel vam pomaga, da vedno končate delo pred časom in izstopite iz množice

  • Več kot zmogljive napredne funkcije 300, zasnovane za 1500 delovne scenarije, ki povečujejo produktivnost z 70%, vam dajejo več časa za skrb za družino in uživanje v življenju.
  • Ne potrebujete več pomnilniških formul in VBA kod, od zdaj naprej pa dajate svojim možganom počitek.
  • Postanite strokovnjak za Excel v minutah 3, zapletene in ponavljajoče se operacije lahko opravite v nekaj sekundah,
  • Vsak dan zmanjšajte število operacij tipkovnice in miške, zdaj se poslovite od poklicnih bolezni.
  • 110,000 visoko učinkovite ljudi in 300 + svetovno priznanih podjetij izbiro.
  • Brezplačna preizkusna različica 60 dneva. 60-dnevno jamstvo vračila denarja. 2 let brezplačne nadgradnje in podpore.

Prinaša kartično brskanje in urejanje za Microsoft Office, veliko močnejši od zavihkov brskalnika

  • Office Tab je namenjen za Word, Excel, PowerPoint in druge Office aplikacije: Založnik, Dostop, Visio in Projekt.
  • Odprite in ustvarite več dokumentov v novih zavihkih istega okna in ne v novih oknih.
  • Z 50% poveča vašo produktivnost in vsak dan zmanjša na stotine klikov z miško!
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Gwen · 3 months ago
    Hi. I'm trying to use the "Auto Populate Current Date In Cell When Adjacent Cell Is Updated With VBA Code". This works on Sheet 1, but I have 11 other sheets I need the code to work on. Please advise. I'm not VBA saavy at all so I appreciate any help I can get!

    Thanks.
    • To post as a guest, your comment is unpublished.
      crystal · 3 months ago
      Hi Gwen,
      Please repeat the steps to copy the code to other sheets. It may be tedious, but it works.
  • To post as a guest, your comment is unpublished.
    Tracey · 4 months ago
    I used this code to auto populate a column and now wish to auto populate more columns based on date entered into column H. In other words, once a date is entered can I auto populate columns to add date 90, 60, and 30 days out?
    • To post as a guest, your comment is unpublished.
      crystal · 3 months ago
      Hi Tracey,
      The following VBA code can help you solve the probem. Please have a try.

      Private Sub Worksheet_Change(ByVal Target As Excel.Range)
      Dim xRg As Range, xCell As Range
      Dim xRgAddress As String
      xRgAddress = "H:H"
      On Error Resume Next
      If (Target.count = 1) Then
      If (Not Application.Intersect(Target, Me.Range(xRgAddress)) Is Nothing) Then
      Target.Offset(0, 1) = Date + 90
      Target.Offset(0, 2) = Date + 60
      Target.Offset(0, 3) = Date + 30
      End If
      Application.EnableEvents = False
      Set xRg = Application.Intersect(Target.Dependents, Me.Range(xRgAddress))
      If (Not xRg Is Nothing) Then
      For Each xCell In xRg
      xCell.Offset(0, 1) = Date + 90
      xCell.Offset(0, 2) = Date + 60
      xCell.Offset(0, 3) = Date + 30
      Next
      End If
      Application.EnableEvents = True
      End If
      End Sub
  • To post as a guest, your comment is unpublished.
    Jen · 1 years ago
    Nevermind...I tried John's response below and it works - thank you!
  • To post as a guest, your comment is unpublished.
    Jen · 1 years ago
    HI - new to VBA - I want to loop the code - VBA code: auto populate current date in a cell when the adjacent cell is updated so that after a cell is updated with a date, then move on to say "J:J" and update K with date and then do 2 more times. Not sure if it is a loop or for? Thank you
  • To post as a guest, your comment is unpublished.
    sri laqshya · 1 years ago
    Hi,

    Can anyone one suggest a code for when I input number in column A and Column B and in Column C I kept a formula like Column A + Column B. Now I need a vba code that can give time and date in Column D whenever Column C changes not when inserting numbers in Column A and B.