我想在用户更改另一个单元格时在单元格中设置时间戳,但是没有VBA,因为我希望这在无宏情况下工作。我发现的所有解决方案都使用Worksheet_Change VBA代码,所以我需要一个没有VBA的答案。
示例:用户更新A列。我希望B列记录用户更改A列时的时间戳。
答案 0 :(得分:1)
这是解决问题的方法。它需要一个技巧,因为你必须打开迭代计算,因为这种方法利用了循环引用。因此,这只适用于不需要迭代计算的工作簿。
在时间戳所在的每一行的B列中,使用此公式。因此对于第2行,单元格B2将包含:
=IF(AND(A2<>"",C2<>A2),NOW(),IF(A2="","n/a",B2))
在C列(或任何其他未使用的列)中,放置此公式。因此对于第2行,单元格C2将包含:
=IF(A2="","",IF(OR(B2="",AND(ISNUMBER(C2),A2=C2)),C2,A2))
那就是它。结果将如下所示。您可以将时间戳格式化为其他值:
| A B C |
1| User Entry Timestamp Prev |
2| dog 6:28:55 PM dog |
3| cat 7:17:42 PM cat |
4| n/a |
C列存储A的值,以便在更改A时,公式知道A已更改值。如果用户输入“狗”,时间戳将不会改变。细胞但是叶子“狗”#39;作为价值。当你在另一行中更改单元格A时,第2行的时间戳不会改变,这是一些捕获时间戳的excel解决方案的问题。