excel - 每次某个单元格发生变化时都创建一个新的日期戳吗?

标签 excel vba datestamp

我有一个单元格,用于说明项目的状态,并且此状态会经常更改。

每当状态发生变化时,我想要一行来说明状态更改的时间和新状态的名称。

我几乎没有 VBA 经验,因此我们将不胜感激。到目前为止我有这个:

Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Column = 4 And Target.Row = 4 Then

        Target.Offset(10, 3) = Format(Now(), "YYYY-MM-DD HH:MM:SS")

    End If

End Sub

每当单元格 D4 中包含的状态发生更改时,此代码都会成功列出单元格 G7 中的时间,但它总是重新填充同一单元格,我希望每个连续的状态更改都列出单元格 G8 中的日期戳,然后是 G9,然后是 G10 , 等等。

它也没有列出状态单元格 D4 的更改内容,理想情况下我希望将其列在 F7、F8、F9 中,依此类推。

最佳答案

  1. 如果您只对单元格 D4 上的 Worksheet_Change 感兴趣,则可以使用如下所示的 Intersect 方法
  2. 要启动运行列表,您需要确定G 列 中最后使用的单元格并进行相应的偏移
<小时/>
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Intersect(Target, Range("D4")) Is Nothing Then
        Dim LR As Long: LR = Range("G" & Rows.Count).End(xlUp).Offset(1).Row
        Target.Offset(LR - Target.Row, 3) = Format(Now(), "YYYY-MM-DD HH:MM:SS")
        Target.Offset(LR - Target.Row, 4) = Target
    End If

End Sub

关于excel - 每次某个单元格发生变化时都创建一个新的日期戳吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54246602/

相关文章:

vba - 应用程序匹配与查找

python - lxml + django + uwsgi 无法生成正确格式的excel文件?

vba - vba中的workbooks.add系统地打开两个工作簿

linux - 查找空文件,如果找到更新文件

MySQL表修改时间戳

Perl 和纪元时间问题

xml - 尝试通过excel从网站检索xml数据

vba - Excel VBA 中的 Like 运算符

VBA:如何从过滤数据中获取当前区域?

vba - Excel VBA - 检查字符是否等于符号