If-else VBA语句,用于在Excel 2010中自动隐藏行

时间:2013-02-21 14:55:01

标签: vba excel-vba if-statement excel-2010 excel

我正在尝试隐藏 - 根据在特定字段中输入的值,自动隐藏Excel 2010电子表格中的某些行。我正在使用数据验证来设置0到50之间的最小和最大数。如果它是0,则隐藏接下来的3行,但如果是任何其他数字,则显示行。

下面是可以使用的VBA代码,除了我必须为每个可能的号码添加它。是否有我可以使用的IF Else声明?如果为0,则隐藏,否则显示行

If Target.Address(False, False) = "B45" Then

    Select Case Target.Value

        Case "0": Rows("46:48").Hidden = True

        Case "1": Rows("46:48").Hidden = False

        Case "2": Rows("460:48").Hidden = False

        Case "3": Rows("46:48").Hidden = False

        Case "4": Rows("46:48").Hidden = False

        Case "5": Rows("46:48").Hidden = False

        Case "6": Rows("46:48").Hidden = False

        Case "7": Rows("46:48").Hidden = False

        Case "8": Rows("46:48").Hidden = False

        Case "9": Rows("46:48").Hidden = False

        Case "10": Rows("46:48").Hidden = False

    End Select

    Else: Rows("46:48").Hidden = False

End If

谢谢!

2 个答案:

答案 0 :(得分:1)

你不会只使用:

Case Else
Rows("46:48").Hidden = False

然后说任何不适合第一种情况(0)的东西都默认为这个。

对不起,如果我误解了。

答案 1 :(得分:1)

您可以尝试:

,而不是使用Select Case
If Target.Address(False, False) = "B45" Then
    If Target.Value > 0 And Target.Value <= 10 Then
        Rows("46:48").Hidden = False
    Else
        Rows("46:48").Hidden = True
    End If
Else
    Rows("46:48").Hidden = False
End If