2017-08-18 8 views
0

Gibt es eine Möglichkeit, die Zelladresse der ersten sichtbaren Zelle nach dem Filtern auszuwählen oder zurückzugeben? Ich habe das bis jetzt und bin bei der Auswahl der ersten sichtbaren Zelle nach dem Filter geblieben.Zeilennummer nach Filter 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 

Ich habe tatsächlich Spaltenüberschriften.

Antwort

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

UsedRange den Bereich des Blattes in Gebrauch zurück (okay, manchmal zu viel, aber dass in diesem Fall keine Rolle spielt), offset(1, 0) bewegt eine Zeile nach unten, so dass die headerlines ignorieren, bekommt SpecialCells(xlCellTypeVisible) eine Liste von Alle Zellen, die sichtbar sind und daher die letzte (1) gibt die erste sichtbare Zelle zurück.

1

Mit gegebenem Bereich als A1, diese würden Ihnen die erste sichtbare Zelle geben:

Range("A1").Offset(1, 0).SpecialCells(xlCellTypeVisible)(1).Row 
  1. Offset wird die Kopfzeile
  2. Special überspringen wird die Kontrolle zu sichtbaren Zellen bewegen.
  3. Wählen Sie das erste Element aus den sichtbaren Zellen aus.
  4. finden Row
+0

'.Offset' gibt' Methode oder Datenelement nicht found' Fehlerstart Dim. – ramedju

+1

@ramedju, es war ein Tippfehler, behoben. –

0

Try this

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

die Variablen am

+1

Die anderen 2 Antworten sind viel einfacher (besser). Dies ist nur eine Alternative. – Mitch