2017-08-18 60 views
0

有什么办法可以选择或返回过滤后的第一个可见单元格的单元格地址?到目前为止,我一直在选择滤波器后的第一个可见单元。过滤器VBA后返回行号

fileSheet.Name = "Test" 

With fileSheet 
    .Range("A2").Activate 
    ActiveWindow.FreezePanes = True 
    .Range("A2").AutoFilter field:=4, Criteria1:=">1" 
    'select the first visible cell after column header 
End With 

我实际上有列标题。

回答

1
dim firstCell as Range 
set firstCell = fileSheet.usedRange.offset(1,0).SpecialCells(xlCellTypeVisible)(1) 

UsedRange返回片在使用中的(好吧,有时太多,但并不在这种情况下重要)offset(1, 0)移动下移一行,以便headerlines被忽略的范围内,SpecialCells(xlCellTypeVisible)得到的名单所有可见的单元格,因此最后的(1)返回第一个可见单元格。

1

按照给定的范围内A1,这将给你的第一个可见单元格:

Range("A1").Offset(1, 0).SpecialCells(xlCellTypeVisible)(1).Row 
  1. 偏移将跳过标题行
  2. SpecialCells将移动控制,可见细胞。
  3. 从可见单元格中选取第一个项目。
  4. 查找行
+0

'.Offset'返回'方法或数据成员不found'错误昏黄的变量。 – ramedju

+1

@ramedju,这是一个错字,固定。 –

0

试试这个

lastrow=cells(rows.count,"A").end(xlup).row 
    For x=1 To lastrow 
    If cells(x,"A")=criteria1 Then 
     rowfound=x 
    endif 
    Next x 

在开始

+1

其他2个答案更容易(更好)。这只是一个选择。 – Mitch