如何在Excel单元格变化时插入时间戳(2种有效方法)

  • Share This
Hugh West

本文说明了如何在excel中对单元格的变化进行时间标记。 你可能需要跟踪某一列单元格中的数据条目。 例如,你为输入数据保留了B列。 现在你想在B列的单元格更新时在C列的相邻单元格中获得时间标记。

下载实践工作手册

你可以从下面的下载按钮下载实践工作手册。

Excel中的时间戳.xlsm

当单元格发生变化时在Excel中插入时间戳的2种方法

1.使用IF、AND、NOW和其他函数在Excel中插入时间戳

按照下面的步骤,当一个单元格发生变化时,用公式得到一个时间戳。

📌 阶梯

  • 第一次新闻发布会 ALT+F+T 打开 Excel选项 然后去到 公式 下一步,检查 启用迭代计算 复选框。 然后,设置 最大迭代次数 之后,单击 "确定"。

  • 现在,在单元格中输入以下公式 C5 然后,拖动 填充手柄 图标,将公式复制到下面的单元格中。
=IF(AND(B5"",D5B5),NOW(),IF(B5="","",C5))

  • 然后,在单元格中输入以下公式 D5 接下来拖动 填充手柄 图标到下面的单元格,如前所述。
=IF(B5="","",IF(OR(C5="",AND(ISNUMBER(D5),B5=D5)),D5,B5))

  • 现在,开始在以下单元格中输入数值 B列 之后,你会得到以下结果。 这里。 D列 是一个辅助列,你可以在选择该列后右键单击来隐藏它。

  • 或者,你也可以在单元格中输入以下公式 C5 以获得相同的结果。
=IF(B5"",IF(C5="",NOW(),C5),"")

  • 你可能需要改变以下单元格的格式 C列 通过点击顶部的列号选择该列,然后按 CTRL+1 以打开 格式化单元格 对话框。 现在,点击 定制 下一步,输入 d-mmm-yyy hh:mm:ss AM/PM 类型 最后,点击 "确定"。

公式分解。

单元格C5中的公式。

➤ if(b5="","",c5))

ǞǞǞ IF功能 如果单元格 B5 否则,返回存储在 C5 .

➤ NOW()

ǞǞǞ 现在的功能 返回当前的日期和时间。

➤ 和(b5"",d5b5)

ǞǞǞ 和函数 返回 为真 如果两个参数都为真,即细胞 B5 不是空的 细胞 B5 D5 不具有相同的价值。

➤ if(and(b5"",d5b5),now(),if(b5="",",c5))

如果 和函数 返回 为真 ,那么 IF功能 返回当前的日期和时间,这是从 现在的功能 否则,它将返回从包含有 "A "的参数得到的结果。 IF功能 .

单元格D5中的公式。

➤ ISNUMBER(D5)

ǞǞǞ 函数ISNUMBER 返回 为真 如果细胞 D5 含有一个数字,否则,它返回 假的 .

➤ and(isnumber(d5),b5=d5)

ǞǞǞ 和函数 返回 为真 如果细胞 D5 包含一个数字和单元格 B5 D5 有相同的值。 它返回 失败 否则的话。

➤ or(c5="",and(isnumber(d5),b5=d5))

ǞǞǞ OR功能 返回 为真 如果其中任何一个参数为真,即细胞 C5 是空的或 和函数 返回 是的 .它返回 失败 如果所有的参数都是假的。

➤ if(or(c5="",and(isnumber(d5),b5=d5)),d5,b5)

ǞǞǞ IF功能 返回存储在单元格中的相同值 D5 如果 OR功能 返回 为真 否则,它将返回单元格的值 B5 .

➤ if(b5="","",if(or(c5="",and(isnumber(d5),b5=d5)), d5,b5))

ǞǞǞ IF功能 如果单元格 B5 否则,它将返回从包含有 "A "的参数得到的结果。 IF功能 .

阅读更多:如何在没有VBA的情况下在单元格中插入时间戳(3种方法)。

类似读物

  • 如何在Excel中插入静止的日期(4种简单方法)
  • Excel VBA:运行宏时插入时间戳
  • 如何在行中的单元格被修改时插入Excel日期标记
  • 在Excel中把Unix时间戳转换为日期(3种方法)

2.应用VBA代码在Excel单元格变化时插入时间戳

你也可以在excel中使用VBA获得一个单元格变化时的时间戳。 按照下面的步骤就可以做到这一点。

📌 阶梯

  • 首先,右键单击目标工作表标签。 然后,选择 查看代码 这将打开该特定工作表的代码模块。

  • 接下来,使用右上角的复制按钮复制以下代码。
 Private Sub Worksheet_Change(ByVal Target As Range) Dim CellCol, TimeCol, Row, Col As Integer Dim DpRng, Rng As Range CellCol = 2 TimeCol = 3 Row = Target.Row Col = Target.Column If Row <= 4 Then Exit Sub Timestamp = Format(Now, "DD-MM-YYY HH:MM:SS AM/PM" ) If Target.Text "" Then If Col = CellCol Then Cells(Row, TimeCol) = Timestamp Else On Error Resume Next Set DpRng = Target.Dependents ForEach Rng In DpRng If Rng.Column = CellCol Then Cells(Rng.Row, TimeCol) = Timestamp End If Next End If End Sub 
  • 之后,将复制的代码粘贴到空白模块上,如下图所示。

  • 接下来,将该文件保存为 支持宏的工作簿 现在,开始在B列的单元格中输入数据,然后你会得到与先前相同的结果。

VBA代码解释。

Private Sub Worksheet_Change(ByVal Target As Range)

Dim CellCol, TimeCol, Row, Col As Integer

Dim DpRng, Rng as Range

宣布必要的变量。

CellCol = 2

数据输入栏。

TimeCol = 3

时间戳列。

Row = Target.Row

Col = Target.Column

储存所选单元格的行号和列号。

If Row <= 4 Then Exit Sub

在前4行内的任何变化都不会产生时间戳。

时间戳 = Format(Now, "DD-MM-YYY HH:MM:SS AM/PM")

时间戳的格式将是这样的。 根据需要改变它。

如果Target.Text "" 那么

如果Col = CellCol,那么

Cells(Row, TimeCol) = Timestamp

如果所选单元格为空,则创建一个时间戳。

出错时恢复下一步

如果发生任何错误,则忽略不计。

Set DpRng = Target.Dependents

对于DpRng中的每个Rng

如果Rng.Column = CellCol 那么

Cells(Rng.Row, TimeCol) = Timestamp

如果不是空的话,为一个单元格的范围创建时间戳。

阅读更多:如何在Excel中自动插入时间戳数据条目(5种方法)

需要记住的事情

  • 你需要对B列的单元格使用自定义格式,以获得一个正确格式的时间戳。
  • 备用公式只在数据输入到空白单元格时有效。
  • 这里,数据输入和时间戳列在VBA代码中是硬编码的。 你需要根据你的数据集修改代码。

总结

现在你知道如何在excel中改变单元格的时间戳了。 你有任何进一步的疑问或建议吗? 请使用下面的评论部分。 你还可以访问我们的 ǞǞǞ 请与我们保持联系,继续学习。

Hugh West is a highly experienced Excel trainer and analyst with over 10 years of experience in the industry. He holds a Bachelor's degree in Accounting and Finance and a Master's degree in Business Administration. Hugh has a passion for teaching and has developed a unique teaching approach that is easy to follow and understand. His expert knowledge of Excel has helped thousands of students and professionals worldwide improve their skills and excel in their careers. Through his blog, Hugh shares his knowledge with the world, offering free Excel tutorials and online training to help individuals and businesses reach their full potential.