2012-01-24 20 views
1

我有一些代碼可以基於第一個標準自動篩選工作表,然後在沒有條件返回的情況下自動篩選工作表。該條件語句是我需要幫助,它不斷示數即使數據在第二行的第一個單元格(我顯然不希望包括標題):AutoFilter - 找出第二行可見單元是否爲空

With ActiveSheet 
    .AutoFilterMode = False 
    With .Range("A1:F1") 
     .AutoFilter Field:=1, Criteria1:="FirstTest" 

     'See if first cell in second row is blank 
     If (.Offset(2,1).SpecialCells(xlCellTypeVisible).Value = "") Then 

      'if blank, change criteria 
      .AutoFilter Field:=1, Criteria1:="SecondTest" 
     End If 

    End With 
End With 

我知道你可以使用VBA.Array的多個條件,但這變得更加複雜,我現在只需要現在如何引用第二行中的可見數據。

提前謝謝任何幫助。

回答

3

試試這個:

With ActiveSheet 
    .AutoFilterMode = False 
    With .Range("A1:F1") 
     .AutoFilter Field:=1, Criteria1:="FirstTest" 

     'See if first cell in second row is blank 
     If (.Parent.AutoFilter.Range.SpecialCells(xlCellTypeVisible).Count < 2) Then 

      'if blank, change criteria 
      .AutoFilter Field:=1, Criteria1:="SecondTest" 
     End If 

    End With 
End With 
+0

對不起,我跳槍,這是工作沒有錯誤,但不準確。 我在屏幕上有10行(1是標題),它返回126.如果我過濾到3可見,它返回18.任何想法如何這甚至可能? –

+0

哦!它正在計算細胞,而不是行。雅克澤。感謝隊友,你的解決方案絕對正確,我稍微更新它來計算行數。 –

+0

.Rows.Count有時會返回一些奇怪的結果,但爲了解決這個問題,我只是將單元格數除以我的列數: rowCount = .Parent.AutoFilter.Range.SpecialCells(xlCellTypeVisible).Count/6 –