当另一个单元格发生更改时,自动使用当前时间戳更新 Excel 中的单元格

当另一个单元格发生更改时,自动使用当前时间戳更新 Excel 中的单元格

在 Excel 电子表格中,当另一个单元格发生更改(如更新时间戳)时,我想自动使用当前日期和时间更新单元格。

每行都有一个时间戳。我希望在行中前面的单元格之一更新后立即更新它们。

你对如何做到这一点有什么指点吗?

答案1

创建一个值为 Now() 的单元格。按您想要的格式设置其格式 - 例如 yyyy/mm/dd HH:mm:ss,表示 24 小时制的完整时间戳。

现在,只要设置了自动重新计算(默认),任何时候更改另一个单元格,您都会获得新的时间戳。

经过进一步思考,如果您想要一个硬编码的时间戳,该时间戳仅通过不包括打开工作簿、打印等操作的操作进行更新,则可以创建一个附加到 worksheet_change 的宏。将目标单元格设置为文本,并像以前一样使用特定格式。在 Worksheet_Change 事件上使用类似以下内容:Sheet1.Cells[].Value = Text(Now(), "yyyy/mm/dd HH:mm:ss")。

如果您将其放入启动时加载的模板中,那么您就不必再考虑它了。

答案2

http://chandoo.org/wp/2009/01/08/timestamps-excel-formula-help/详细介绍了如何使用递归公式实现时间戳。它们效果很好。

本文概述了如何首先打开循环公式(默认情况下关闭),然后如何创建一个循环公式,当特定单元格插入值时自动插入时间戳。

如果包含时间戳的单元格是 B3,而要监视的单元格是 C3,则公式为:

=IF(C3<>"",IF(B3="",NOW(),B3),"")

也就是说,当 C3 不为空时,将 B3 设置为 NOW()(如果 B3 为空),否则设置为 B3 的当前值。

这在更新和保存时看起来很稳定。

答案3

12 年后...这里总结了当前在 Excel 中添加时间戳的四种方法!

VBA 方法

只有在 Excel 后台编写一些非常基本的 VBA 才能真正实现这种类型的时间自动时间戳。例如,请查看此链接以开始使用:

https://docs.microsoft.com/en-us/office/troubleshoot/excel/run-macro-cells-change

不幸的是,VBA 宏并不总是一个选项,尤其是在文件共享的情况下。一些企业安全设置会完全阻止宏,更不用说如果您不熟悉基本编程,编写 VBA 代码会面临挑战。

数据验证时间戳方法

幸运的是,有几种不使用 VBA 即可在 Excel 中设置时间戳的方法。一种方法是使用列表类型的数据验证来“采样”当前时间。将一个引用单元格或命名范围设置为 =TODAY() 或 =NOW(),每次编辑任何单元格(即重新计算)时,它都会自动更新,因为 NOW/TODAY 是一个易失性函数。为日期输入单元格设置数据验证(在数据功能区上),选择列表并引用 TODAY/NOW 单元格。这将给出一个下拉列表,其中的时间反映了最近的重新计算。从下拉列表中选择后,它会复制时间值并将其“锁定” - 但您仍然需要自己选择它。

循环公式法

另一种方法需要更改 Excel 设置以允许循环公式/迭代计算,这并不理想,因为它是一个全局设置。但它确实运行良好,正如您在问题中所期望的那样。请参见此处:

https://howtoexcelatexcel.com/blog/create-a-timestamp-in-excel-with-formulas/

优点和缺点

VBA 方法非常可靠,最适合单个用户或用户熟悉根据安全设置允许宏的情况。需要一些基本的编码技能。此外,一旦执行宏,您的撤消历史记录通常会丢失。

数据验证方法实施起来非常简单,无需特殊设置或安全许可即可使用。但是,要求用户始终使用下拉单元格来添加时间戳(在对行进行其他更改之后)。

当您在其他单元格中输入数据时,循环公式方法会自动反映时间戳,但您必须启用全局 Excel 设置才能进行迭代,这会产生一些不直观的行为。虽然设置与工作簿一起保存,但如果您在此工作簿之前打开任何其他工作簿,则设置将重置为无迭代。打开此工作簿不会将其改回。您必须先打开此工作簿。此外,打开和保存其他工作簿也会将全局设置与这些文件一起保存,这可能会成为一个(小)问题。主要是在普通工作簿中输入循环公式时禁用错误报告。

Ps.快捷键方法

有时,最简单的方法从 IT 人员的角度来看并不是最理想的,但它对最终用户有用。您可以按以下快捷键之一将当前时间或日期作为值插入当前单元格中:

CTRL and ; (to insert the current date)
CTRL SHIFT and : (to insert the current time)

相关内容