2015-06-21 145 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

相关问题