2017-06-22 149 views
0

我很難檢查過濾列中標題下面的第一個單元格是否有LT。我相信特殊單元格放置不正確。如何分析過濾範圍內第一個細胞的值?特殊細胞?

HeaderRow = wb.Sheets( 「工作表Sheet」)。AutoFilter.Range(1).Row

FiltRng = wb.Sheets("Sheet1").Range(HeaderRow + 1).SpecialCells(xlCellTypeVisible).value 

     If FiltRng Like "*LT*" Then 
MsgBox "It has LT" 

回答

1

我可以找到實現這一目標的唯一方法是檢查第一非報頭行是可見:

  • 如果是這樣,從那裏
  • 如果拿不到細胞,從可見光SpecialCells獲得下區域
  • 如果只有一個這樣的區域,它是標題行,這意味着自動過濾器不匹配任何東西,所以一切都被隱藏了。

With wb.Sheets("Sheet1").AutoFilter.Range 
    If Not .Rows(2).Hidden Then 
    FiltRng = .Cells(2, 1).Value2 
    ElseIf .SpecialCells(xlCellTypeVisible).Areas.count > 1 Then 
    FiltRng = .SpecialCells(xlCellTypeVisible).Areas(2).Cells(1, 1).Value2 
    Else 
    MsgBox "no Cells found" 
    End If 
    If FiltRng Like "*LT*" Then MsgBox "It has LT" 
+0

anyrangeVar.cells(1,1) –