2015-06-21 73 views
0

我有一系列單元格B2:AB40。當單元格區域爲空時,隱藏整行

如果範圍內每行中的每個單元格都是空白的(我的意思是沒有文本或數字,只是顏色填充和邊框格式),我想用宏來隱藏整行。

例如

If every cell in the range B2:AB2 is blank then hide all of row 2. 

If every cell in the range B3:AB3 is blank then hide all of row 3 

If every cell in the range B4:AB4 is blank then hide all of row 4..etc etc etc 

直至幷包括列40

注:列A中的每個單元格和與指定範圍相鄰的每行中的AC將始終具有文本(分別是某人的姓名和公式結果),並且這是不能更改的。

我已經看到了基於單個單元做這件事的各種方法,但似乎無法使它們適合我的目的。

任何幫助表示讚賞。

回答

3

考慮:

Sub RowHider() 
    Dim I As Long, wf As WorksheetFunction 
    Set wf = Application.WorksheetFunction 
    For I = 2 To 40 
     If wf.CountA(Range("B" & I & ":AB" & I)) = 0 Then 
      Rows(I).Hidden = True 
     Else 
      Rows(I).Hidden = False 
     End If 
    Next I 
End Sub 

注意在VBA一個工作表函數的使用。

+0

重的 '工作表函數' 的評論 - 我才誤標記我的問題?如果是的話,我表示歉意。 – SteelyDanFan

+0

@SteelyDanFan不需要道歉............我只是指出了代碼的一個特點............你的標記很好.. –

0

試試這個

Sub HideRangeIfEmpty() 
 

 
    
 
    
 
    If Application.WorksheetFunction.CountA(Range("b2:AB2")) = 0 Then 
 
     Range("b2:AB2").EntireRow.Hidden = True 
 

 
    End If 
 
    
 
    
 
End Sub