2017-05-04 5 views
0

Ich habe viele Methoden versucht, kann aber immer noch nicht die richtige Zeilennummer erhalten.Die Zeilennummer der ersten gefilterten Zeile kann nicht zurückgegeben werden

Ich habe diese Tabelle, in Zeile 4 (Headers) eingefroren.

(Row) Name Car Fee 
5  A  333 1000 
6  B  111 2000 
7  C  222 3000 
8  D  111 4000 
9  E  222 5000 
10  F  111 6000 

machte ich eine Taste, um Return die Zeilennummer von Selection Bereich. Nachdem ich mit Kriterien wie "111" gefiltert habe, zeigt die Tabelle Zeilen 6,8,10.

Der Code funktioniert gut, wenn ich von Zeile 6 zu einer anderen Zeile wähle. Aber es wird Fehler, wenn ich nur Zeile 6 auswähle. Gibt nur Zeile 1 unendlich zurück.

-Code arbeitet für diese fein:

IMG 1: code work fine.

Fehler - unendliche Reihe 1:

IMG 2: error - infinite row 1

Die Schaltfläche VBA-Code:

Private Sub msg_Click() 

Dim rng As Range, eaR As Range 

Set rng = Selection 

For Each eaR In rng.Rows.SpecialCells(xlCellTypeVisible) 
    MsgBox eaR.Row 
Next eaR 

End Sub 

[gelöst] Und Ein anderes Problem ist der Code r etzt die doppelte Zeilennummer, wenn ich mehr als 2 Zellen in einer Zeile auswähle.

Ex: Wenn ich wie IMG 1 wählen, wird er zurückkehren "6,6,8,8"

Was ich tun kann, so wird es nur zurückkehren "6,8"

Bitte helfen Sie mir. Vielen Dank!!!

** Hinweis: Ich muss Selection-Bereich verwenden, weil ich Dinge mit nur einigen Zeilen in den gefilterten Daten tun werde.

Antwort

0

es so probieren ...

Private Sub msg_Click() 

Dim rng As Range, eaR As Range 

Set rng = Selection 

For Each eaR In rng 
    If Not eaR.Rows.Hidden Then MsgBox eaR.Row 
Next eaR 

End Sub 
+0

Ihnen sehr danken. Es läuft gut. Obwohl das Problem der doppelten Zeilenwiederholung noch nicht gelöst ist. – Shiruhane

+0

'Set rng = Selection.Columns (1)' –

+0

@TimWilliams Danke für Ihre Hilfe, aber Spalten hinzufügen funktionierte nicht für mich. Es gab nur die erste Zeilennummer zurück, die nächste Zeile wurde nicht angezeigt. Wie auch immer, ich mache einen Workaround-Weg, indem ich die Nummer überprüfe, wenn sie dieselbe wie vorher ist, und dann überspringe. – Shiruhane

Verwandte Themen