2012-04-10 40 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