2017-08-18 98 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