首页 > 解决方案 > 哪个 VBA 宏给出填充单元格的日期,而不是发生任何事件的日期

问题描述

我有一个 excel 文件,它实际上是一个我定期更新的数据库。每次我进行更新时,我都想过滤我在那一天输入的数据。

所以我在网上找到了这个对我的应用程序非常有用的宏。

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim C As Range, D As Range, Inte As Range, r As Range
    Set C = Range("C:C")
    Set Inte = Intersect(C, Target)
    If Inte Is Nothing Then Exit Sub
    Application.EnableEvents = False
        For Each r In Inte
            r.Offset(0, 1).Value = Date
        Next r
    Application.EnableEvents = True
End Sub

它给了我修改单元格 C 的日期。单元格 C,宏将其视为一个事件。然后它给了我单元格 D 中的日期,但是我没有写任何东西。

我想这应该是一个非常简单的行,可以在宏中的某个位置添加 aIf Not IsEmpty(C.Value) Then但我无法将它放在正确的位置,因为它不起作用......

提前感谢您提供的任何帮助。祝大家周末愉快!

标签: excelvbaevents

解决方案


尝试

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim C As Range, D As Range, Inte As Range, r As Range
    Set C = Range("C:C")
    Set Inte = Intersect(C, Target)
    If Inte Is Nothing Then Exit Sub
    Application.EnableEvents = False
        For Each r In Inte
        If Not IsEmpty(r.Value) Then  ' line added
        r.Offset(0, 1).Value = Date
        Else
        r.Offset(0, 1).Value = ""
        End If
        Next r
    Application.EnableEvents = True
End Sub

推荐阅读