根据Excel中的“下拉列表”隐藏行

时间:2013-03-23 07:16:54

标签: excel excel-vba excel-formula vba

这基本上是一个邮件模板,包含3种不同类型的内容 我有一个带有组合框列表的excel表。 该列表的值为1,2和3。他们有3种不同类型的内容。 当选择其中任何一个时。其余内容必须隐藏。

1 个答案:

答案 0 :(得分:3)

假设您在Range("A1")中设置了具有不同选项的验证选项(在我的示例中为1-3)。在相应的Sheet模块中,输入以下代码并根据需要进行更改。

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中的值时,都会隐藏相应的行范围。 我并不为它的效率感到特别自豪,但这是我的第一个想法。

相关问题