我写了以下代码:
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
此代码用于执行以下操作:如果我从“是/否”下拉列表中选择“是”,则会出现一个消息框并要求我填写日期。 问题是,即使在我填写日期之后,无论我之后做什么,该框仍然出现并要求提供日期。例如,如果我向下移动两个单元格,弹出窗口将继续向我询问日期。 请告诉我该怎么做才能解决这个错误?
答案 0 :(得分:2)
这样可以吗:
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")
"是"。
答案 1 :(得分:1)
您正在使用selectionChange事件,该事件在所选区域发生任何更改后触发,如果想要触发值更改则使用更改事件
Private Sub Worksheet_Change(ByVal Target As Range)
Dim myValue As Variant
On Error GoTo ErrorOccured
If Target.Address = "$B$1" And Target.Value = "Yes" Then
myValue = InputBox("Insert initialDetach")
Range("B2").Value = myValue
End If
ErrorOccured:
'Do when value is not valid
End Sub