MsgBox SelectionChange 定义范围

MsgBox SelectionChange define range

我写了下面的代码:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim myValue As Variant
If Range("B22") = "Yes" Then
        myValue = InputBox("InsertInitialDetach")
        Range("C22").Value = myValue
    End If
End Sub

此代码用于执行以下操作:如果我从 Yes/No 下拉列表中 select 是,则会出现一个消息框并要求我填写日期。 问题是,即使在我填写日期之后,无论我之后做什么,该框都会继续出现并询问日期。例如,如果我向下移动两个单元格,弹出窗口将继续要求我提供日期。 请告诉我应该怎么做才能修复此错误?

这样可以吗:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim myValue As Variant
    If (Not Intersect(Range("B22"), Target) Is Nothing) And (Range("B22") = "Yes") Then
        myValue = InputBox("InsertInitialDetach")
        Range("C22").Value = myValue
    End If
End Sub

它每次都会检查你是否正在更改 Range("B22") 以及是否 Range("B22") "Yes".

您正在使用所选区域发生任何更改后触发的 selectionChange 事件,如果要在值更改时触发,请使用更改事件

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim myValue As Variant
    On Error GoTo ErrorOccured
    If Target.Address = "$B" And Target.Value = "Yes" Then
        myValue = InputBox("Insert initialDetach")
        Range("B2").Value = myValue
    End If
    ErrorOccured:
    'Do when value is not valid
    End Sub