隐藏基于Excel中的下拉列表的行

这基本上是一个邮件模板,包含3种不同types的内容。
我有一个combobox列表的Excel表。 该列表具有值1,2和3.以及3种不同types的内容。 当他们中的任何一个被选中时。 其余内容必须隐藏。

假设你在Range("A1")使用不同的选项设置了validation选项(在我的例子中为1-3)。 在相应的工作表模块中input以下代码并根据需要进行更改。

 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$1" Then Dim rngOpt1 As Range Dim rngOpt2 As Range Dim rngOpt3 As Range 'you doesn't need to put rows references here 'as we deal with it later Set rngOpt1 = Range("b10:c15") 'first area to be hidden Set rngOpt2 = Range("d16:e20") 'second... Set rngOpt3 = Range("f21:g25") 'you can guess If Range("A1") = 1 Then 'your validation cell rngOpt1.EntireRow.Hidden = False rngOpt2.EntireRow.Hidden = True rngOpt2.EntireRow.Hidden = True ElseIf Range("A1") = 2 Then rngOpt1.EntireRow.Hidden = True rngOpt2.EntireRow.Hidden = False rngOpt2.EntireRow.Hidden = True Else 'you can do it on you own... :) End If End If End Sub 

每次在A1中更改值时,相应的行范围都将被隐藏。 我不是特别为它的效率感到自豪,但这是我的第一个想法。