当用户在相邻单元格中输入信息时,自动填充单元格中的日期

She*_*uer 3 excel date auto-populate

我有一个电子表格,人们可以在其中输入项目更新,然后输入更新日期.发生的事情是人们忘记了他们的笔记约会.有没有办法让日期单元格自动进入当前/进入日期?

我假设一个if函数会这样做吗?

Gar*_*ent 5

如果在A列中输入了值,则此事件宏将在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
            r.Offset(0, 1).Value = Date
        Next r
    Application.EnableEvents = True
End Sub
Run Code Online (Sandbox Code Playgroud)

因为它是工作表代码,所以很容易安装和自动使用:

  1. 右键单击Excel窗口底部附近的选项卡名称
  2. 选择查看代码 - 这会打开一个VBE窗口
  3. 粘贴内容并关闭VBE窗口

如果您有任何疑虑,请先在试用工作表上试用.

如果保存工作簿,宏将与其一起保存.如果您在2003年之后使用的是Excel版本,则必须将文件另存为.xlsm而不是.xlsx

要删除宏:

  1. 如上所述调出VBE窗口
  2. 清除代码
  3. 关闭VBE窗口

要了解有关宏的更多信息,请参阅:

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

和

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

要了解有关事件宏(工作表代码)的更多信息,请参阅:

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

必须启用宏才能使其正常工作!

更改代码以使用不同的列.

编辑#1:

此版本不会覆盖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
Run Code Online (Sandbox Code Playgroud)