首页 > 解决方案 > 如何将我在 Excel 中执行某些任务的时间和日期保存在给定的单元格中?

问题描述

我想知道如何在 Excel 中记录我完成某项任务的时间和日期。

示例:我在单元格中插入了一个数字A2,我希望 Excel 显示我什么时候在单元格中插入了该数字A2

Private Sub Time()
Dim r As Integer
Dim v As Integer

For r = 1 To 700

If IsEmpty(Cells(r, 2)) = True Then

   Cells(r, 1) = ""
   Else
   Cells(r, 1) = Time()

End If

Next
End Sub 

这不起作用,因为每当我在第 2 列中写入一些新数字并执行宏时,由于 For 循环,VBA 会覆盖以前的时间。

标签: excelvba

解决方案


使用您当前的方法,您必须手动运行宏来捕获时间戳(如果您手动运行宏,为什么不手动使用热键插入时间戳?)

如果您必须使用 VBA,这可能是更好的选择。
当单元格发生物理变化时,以下代码将自动执行(方程式更改/格式不会触发宏)。触发后,宏将在 column 下方构建所做的每个更改的Range/集合(仅限于粘贴此代码的工作表) 。Time StampZ

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
        Dim LRow As Long
        LRow = Range("Z" & Rows.Count).End(xlUp).Offset(1).Row
        Range("Z" & LRow) = Target.Address(False, False) & " changed at " & Now
    Application.EnableEvents = True
End Sub

示例输出:

在此处输入图像描述


推荐阅读