2013-08-21 96 views
1

我不知道如何在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 

我得到,說:「否則,沒有如果」

請告訴我,我做了什麼正確的錯誤。

謝謝。

+0

你的第二個,如果需要澄清一點...你想隱藏行25:65如果K23是等於T21的任何值:T23或全部T21:T23中的值或這些值的總和。你能否用文字寫下你想要發生的事情? – sous2817

回答

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 

這也是一個比較容易閱讀這種方式。正如你對你的問題所評論的,你需要提供更多的細節,以便我們幫助你實際完成你需要的功能。

0

的一種方式......

Sub tgr() 

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

End Sub