且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

尝试两次运行工作表更改事件

更新时间:2023-02-05 19:34:47

在OP评论后进行了编辑

edited after OP's comment

扩展@Jeeped解决方案,可以避免循环:

expanding on @Jeeped solution, you can avoid looping:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rng As Range

    Set rng = Intersect(Range("A:A, I:I"), Target) ' define range of interest
    If Not rng Is Nothing Then ' check it's not "nothing"
        If WorksheetFunction.CountA(rng) = rng.Count Then 'check for all of its cells being not empty
            On Error GoTo safe_exit 'add error control
            Application.EnableEvents = False 'don't do anything until you know something has to be done
            rng.Offset(, 1).Value = Date 'write Date next to all relevant changed cells
        End If
    End If

safe_exit:
    Application.EnableEvents = True
End Sub