带有数据validation的VBA SelectionChange

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

我写了一个macros(下面贴出来),最终目标是根据用户做出的事先select来隐藏不相关的行。 目前这些macros将达到最终目标,但不是我想要的。

如果选中的目标单元格为空,则可以使用下拉箭头select我的选项或手动input。 但是之后通过select一个新的单元格或者按回车键从这个单元格导航,不会触发这个macros。 要触发macros,我必须重新激活单元格。

这个问题是我想给我的用户稍后改变这个单元格的选项,但是我不能改变select而不突出显示多个单元格并删除所有影响目标单元格周围其他input的信息。

我假设我遗漏了一些代码,告诉macros一旦用户导航离开细胞触发的代码。

这是我现在的代码:

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 

你不知道吗,写这个给我的想法是正确的询问input到谷歌search。

我在这个链接find我的答案: 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