2011-10-19 72 views
1

我今天病得很厲害,VBA也很新 - 不是成功的祕訣。我試圖在(水平)範圍內遍歷每個單元格,如果單元格內的文本爲FALSE,那麼我想隱藏該列。這是我到目前爲止:循環遍歷範圍並隱藏列VBA

Dim rRange As Range 
Dim rCell As Range 
rRange = Worksheets("Data").Range("W7:AH7").Cells 

For Each rCell In rRange 
     If rCell.Value = "FALSE" Then rCell.Columns.EntireColumn.Hidden = True 
Next rCell 
End Sub 

我得到錯誤「對象變量或塊變量未設置」。請有人指出我哪裏出錯了?謝謝。

回答

2

使用本

set rRange = Worksheets("Data").Range("W7:AH7").Cells 

If Ucase(rCell.Value) = "FALSE" Then rCell.Columns.EntireColumn.Hidden = True 

對象變量需要設置來創建一個實例, 「FALSE」 <> 「假」,用UCASE忽視個體差異。

[]的

+0

非常感謝!我沒有意識到你必須像這樣放置Set ...至於大小寫不是問題,因爲單元格字面上包含「FALSE」。但是,這一切現在似乎都運行良好,但列沒有隱藏在最後。我認爲EntireColumn.Hidden = True會立即隱藏它們?再次感謝 – SWilliams

+0

確定,實際上,我正在愚蠢 - 歡呼! – SWilliams