Auto-fill the date in a cell, when the user enters information in an adjacent cell

后端 未结 4 1207

I have a spread sheet, where people can enter project updates and then the date of the update. What is happening is that people are forgetting to date their notes. Is there

相关标签:
4条回答
  • 2021-01-03 07:20

    Try this formula in the desired cell (e.g C13) to fill the current date when corresponding input cell (e.g D13) is not empty and not filled with 0 :

    =IF(AND(D13<>"";D13<>0);TODAY();"")
    

    And then you can copy this formula to the subsequent cells to fill in the formulas for that column (e.g col C)

    0 讨论(0)
  • 2021-01-03 07:23

    ZAT's answer worked for me... AFTER I changed the ";"s to ","s.

    =IF(AND(D52<>"",D52<>0),NOW(),"")
    

    I used "NOW" instead of "TODAY" to give me the time of day.

    0 讨论(0)
  • 2021-01-03 07:31

    This event macro will place the date in column B if a value is entered in column A. The macro should be installed in the worksheet code area:

    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim A As Range, B As Range, Inte As Range, r As Range
        Set A = Range("A:A")
        Set Inte = Intersect(A, Target)
        If Inte Is Nothing Then Exit Sub
        Application.EnableEvents = False
            For Each r In Inte
                r.Offset(0, 1).Value = Date
            Next r
        Application.EnableEvents = True
    End Sub
    

    Because it is worksheet code, it is very easy to install and automatic to use:

    1. right-click the tab name near the bottom of the Excel window
    2. select View Code - this brings up a VBE window
    3. paste the stuff in and close the VBE window

    If you have any concerns, first try it on a trial worksheet.

    If you save the workbook, the macro will be saved with it. If you are using a version of Excel later then 2003, you must save the file as .xlsm rather than .xlsx

    To remove the macro:

    1. bring up the VBE windows as above
    2. clear the code out
    3. close the VBE window

    To learn more about macros in general, see:

    http://www.mvps.org/dmcritchie/excel/getstarted.htm

    and

    http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

    To learn more about Event Macros (worksheet code), see:

    http://www.mvps.org/dmcritchie/excel/event.htm

    Macros must be enabled for this to work!

    Change the code to use different columns.

    EDIT#1:

    This version will not overwrite material already present in column B:

    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim A As Range, B As Range, Inte As Range, r As Range
        Set A = Range("A:A")
        Set Inte = Intersect(A, Target)
        If Inte Is Nothing Then Exit Sub
        Application.EnableEvents = False
            For Each r In Inte
                If r.Offset(0, 1).Value = "" Then
                   r.Offset(0, 1).Value = Date
                End If
            Next r
        Application.EnableEvents = True
    End Sub
    
    0 讨论(0)
  • 2021-01-03 07:32

    Enter Date & Time in column A & B with the data entry in column D

    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim A As Range, B As Range, Inte As Range, r As Range
    Set A = Range("D:D")
    Set Inte = Intersect(A, Target)
    If Inte Is Nothing Then Exit Sub
    Application.EnableEvents = False
        For Each r In Inte
            If r.Value > 0 Then
               r.Offset(0, -3).Value = Date
               r.Offset(0, -3).NumberFormat = "dd-mm-yyyy"
               r.Offset(0, -2).Value = Time
               r.Offset(0, -2).NumberFormat = "hh:mm:ss AM/PM"
            Else
               r.Offset(0, -3).Value = ""
               r.Offset(0, -2).Value = ""
            End If
        Next r
    Application.EnableEvents = True
    End Sub
    
    0 讨论(0)
提交回复
热议问题