如何使用 ByVal Target As Range 所以它适用于多个单元格并且不依赖于以前的

How to use ByVal Target As Range So it applies to multiple cell and is not dependent on previous

此代码的 objective 每次单元格 E6:E36 从 "Yes" 或 "Enter Non Final Action Taken Date" 更改时,我希望它成为 运行 我的宏。

只有当E6被标记为匹配下一个值时才有效。我该怎么做才能使其不依赖于之前的单元格值?

我是 VBA 的新手,所以我有点迷路了。任何帮助将不胜感激。请参阅下面的当前代码:

  Private Sub Worksheet_Change(ByVal Target As range)

Application.EnableEvents = False 'pervent triggering another change event
    On Error GoTo ERR_HANDLING

 If Not Intersect(Target, range("E6:E36")) Is Nothing Then
Select Case range("E6,E7,E8,E9,E10,E11,E12,E13,E14,E15,E16,E17,E18,E19,E20,E21,E22,E23,E24,E25,E26,E27,E28,E29,E30,E31,E32,E33,E34,E35,E36")
Case "Yes": EnterDate_of_last_Submission

End Select
End If

 If Not Intersect(Target, range("E6,E7,E8,E9,E10,E11,E12,E13,E14,E15,E16,E17,E18,E19,E20,E21,E22,E23,E24,E25,E26,E27,E28,E29,E30,E31,E32,E33,E34,E35,E36")) Is Nothing Then
Select Case range("E6,E7,E8,E9,E10,E11,E12,E13,E14,E15,E16,E17,E18,E19,E20,E21,E22,E23,E24,E25,E26,E27,E28,E29,E30,E31,E32,E33,E34,E35,E36")
Case "Enter Non Final Action Taken Date": EnterNonFinal_Date

End Select
End If

On Error GoTo 0
ERR_HANDLING:
    Application.EnableEvents = True

    If Err.Number <> 0 Then
        Err.Raise Err.Number, Err.Source, Err.Description, Err.HelpFile, Err.HelpContex

    End If
End Sub

你需要在这里循环并逐个单元格进行比较,如下所示:

Private Sub Worksheet_Change(ByVal Target As range)
    Dim rngToCheck as Range
    Set rngToCheck = Intersect(Target, Me.Range("E6:E36"))

    If rngToCheck Is Nothing Then Exit Sub

    On Error GoTo SafeExit
    Application.EnableEvents = False

    Dim rng as Range
    For Each rng in rngToCheck
        Select Case rng.Value
            Case "Yes"
                EnterDate_of_last_Submission
            Case "Enter Non Final Action Taken Date"
                EnterNonFinal_Date
        End Select
     Next

SafeExit:
    Application.EnableEvents = True
End Sub

最有可能 EnterDate_of_last_SubmissionEnterNonFinal_Date 应该重写为采用 Range 参数,即输入日期的单元格(看起来对应于 rng.Offset(,1) 使用您当前的设置。