2017-06-22 97 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) –