Table of contents
本文说明了如何在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中改变单元格的时间戳了。 你有任何进一步的疑问或建议吗? 请使用下面的评论部分。 你还可以访问我们的 ǞǞǞ 请与我们保持联系,继续学习。