VBA SelectionChange with Data Validation



我一直在做一些研究,但其他人在这方面没有遇到和我一样的问题,或者一直在努力达到不同的目标。

我写了一个宏(发布在下面),其中的最终目标是根据用户之前的选择隐藏不相关的行。目前宏将实现最终目标,但不完全是我想要的。

如果选择时目标单元格为空,我可以使用下拉箭头选择我的选项或手动键入。但是,之后通过选择新单元格或点击回车键离开单元格都不会触发宏。要触发宏,我必须重新激活单元格。

问题是,我想让我的用户稍后可以选择更改此单元格,但如果不突出显示多个单元格并删除所有会影响目标单元格周围其他输入的信息,我就无法更改选择。

我假设我丢失了一行代码,这些代码告诉宏在用户离开单元格时触发。

这是我当前的代码:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$D$3" Then

If Target = "Hide" Then
Rows("9:13").Select
Selection.EntireRow.Hidden = True
ElseIf Target = "Don't Hide" Then
Rows("9:13").Select
Selection.EntireRow.Hidden = False
End If
End If
End Sub

你不知道吗?这篇文章让我想到了在谷歌搜索中输入正确查询的想法。

我在这个链接找到了答案:http://www.cpearson.com/excel/WaitFunctions.aspx

我的最终代码看起来是这样的:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$D$3" Then
Dim B As Boolean
B = ThisWorkbook.WaitForUserInput(WaitSeconds:=10, _
WaitCell:=Worksheets(1).Range("D3"))
If Target = "Hide" Then
Rows("9:13").Select
Selection.EntireRow.Hidden = True
ElseIf Target = "Don't Hide" Then
Rows("9:13").Select
Selection.EntireRow.Hidden = False
End If
End If
End Sub

最新更新