2012-04-10 37 views

回答

1

我通常把这种公式ISNA(),然后只用Excel的筛选器隐藏空行

=IF(ISNA(VLOOKUP(A3,G1:H7,2,FALSE)),"",VLOOKUP(A3,G1:H7,2,FALSE)) 
+0

+1保持它的简单:) – 2012-04-10 19:43:26

+0

您可以使用Excel按行过滤?我认为这只是列过滤?我希望模板自动隐藏未被标题填充的列。每一列具有50个细胞下面填入,我使用 - 如果被填充的标题。 – user1324883 2012-04-10 20:05:45

+0

当您应用过滤器列,它显示/隐藏整行,如果过滤语句为真(或假 - 这取决于你的意图)(请确保您有选择的所有数据单元之前,您设置的过滤器) – Andrew 2012-04-10 20:26:14

1

试试这个:

  1. 循环throught他头细胞
  2. 套装在EntireColumn.Hidden属性根据您的标准
  3. 使用.ScreenUpdating = False防止屏幕闪烁和SP EED它

Sub HideColumns() 
    Dim rng As Range 
    Dim cl As Range 

    Application.ScreenUpdating = False 
    Set rng = [G1:AZ1] 
    For Each cl In rng 
     If IsError(cl) Then 
      cl.EntireColumn.Hidden = cl = CVErr(xlErrNA) 
     Else 
      cl.EntireColumn.Hidden = cl = "" 
     End If 
    Next 
    Application.ScreenUpdating = True 
End Sub 
+0

要使这甚至更少可读,你可以写'cl.EntireColumn.Hidden =(ISERROR(CL)和CL = CVErr(xlErrNA))或(不ISERROR(CL)和CL = CVErr(xlErrNA))';-) +1 – 2012-04-11 12:13:43