Excel宏以隐藏行

时间:2013-08-21 13:34:19

标签: excel-vba vba excel

我不知道如何在Excel中编写宏,但我认为我在您的网站上找到了一个让我接近我需要的答案。这是我的情况:

If cell K23 = cell T20 then do nothing.  
If cell K23 = cell (T21:T23) then hide rows 25:65

这是我到目前为止的宏:

Sub HIDE()
    If Range(K23) = Range(T20) Then nil = True
    Else
    If Range(K23) = Range("T21:T23") Then Rows("25:65").EntireRow.Hidden = True

    End If: End If:

End Sub

我收到一条错误,上面写着“Else without If”

请告诉我我做错了什么。

感谢。

2 个答案:

答案 0 :(得分:0)

你需要将“nil = true”放在一个单独的行上;如果您要在与“if”相同的行上执行语句,则Excel VBA会将此视为“if”语句的结尾。

所以你需要这样做:

Sub HIDE()
    If Range(K23) = Range(T20) Then 
        nil = True
    Else
        If Range(K23) = Range("T21:T23") Then 
            Rows("25:65").EntireRow.Hidden = True
        End If
    End If
End Sub

这种方式也更容易阅读。在对您的问题发表评论时,您需要提供更多详细信息,以便我们帮助您使您的功能真正完成您所需要的功能。

答案 1 :(得分:0)

单程......

Sub tgr()

    Range("25:65").EntireRow.Hidden = (WorksheetFunction.CountIf(Range("T21:T23"), Range("K23").Text) > 0)

End Sub