我不知道如何在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”
请告诉我我做错了什么。
感谢。
答案 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