VBA根据值隐藏单元格

时间:2018-08-28 15:15:58

标签: excel vba

我写了以下内容,如果单元格e3中的值不是DWW,则希望隐藏行6:10,如果是DWW,则我要重新显示这些单元格。

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("E3")) Is Nothing Then
        If LCase$(Range("E3").Value) = "DWW" Then
            'if "DWW" is entered in E3, rows are Visible
            Rows("6:10").EntireRow.Hidden = False
        Else
            'if E3=blank or anything other than "DWW", hide rows
            Rows("6:10").EntireRow.Hidden = True
        End If
    End If
End Sub

我的配方没有重新出现细胞,有人可以帮忙吗?

谢谢。

2 个答案:

答案 0 :(得分:3)

LCase会将值更改为小写。

使用Ucase

If UCase$(Range("E3").Value) = "DWW" Then

或匹配小写字母

If LCase$(Range("E3").Value) = "dww" Then

答案 1 :(得分:0)

您已经可以得到更有效的答案,但是可以使用正则表达式

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("E3")) Is Nothing Then
        Rows("6:10").EntireRow.Hidden = True
        With CreateObject("VBScript.RegExp")
            .Global = True
            .MultiLine = True
            .Pattern = "DWW"
            If .test(Target) And Len(Target) = 3 Then Rows("6:10").EntireRow.Hidden = False
        End With
    End If
End Sub