Excel-VBA-Finde die Letzte Zeile in range
im habend ein wenig Mühe mit der Suche nach der letzten Zeile.
Was ich versuche zu tun ist, suchen Sie die Letzte Zeile in Spalte "A", dann verwenden, um finden Sie in der letzten Zeile innerhalb einer range.
Beispiel der Daten:
1) LR_wbSelect = wbshtSelect.cells(Rows.count, "A").End(xlUp).Row - 22
2) LR_wbSelectNew = wbshtSelect.cells(LR_wbSelect, "A").End(xlUp).Row
Bin ich mit der letzten Zeile in Spalte "A" die Daten aus Zeile 29 nach unten wird immer die gleiche Länge der Zeilen verwendet, die in der Spalte "B" ab Zeile 29 kann eine unterschiedliche Anzahl von Zeilen.
So, ich bin versucht, LR_wbSelect
in Spalte "A", um mein Start Letzte Zeile, dann innerhalb LR_wbSelectNew
es als Ausgangspunkt zu suchen.
Dies funktioniert, wenn die Spalte, die ich auf "A" festgelegt, LR_wbSelectNew
gibt mir die Zeile "17", aber wenn ich die Spalte in LR_wbSelectNew
zu "B", die es nicht geben die richtige Letzte Zeile "18".
Ändern kann ich die Spalte "C,D,E,F" und der code funktioniert gut, aber die einzige Spalte, die ich verwenden können, ist "B", weil es immer Daten in es, wo der rest der Zeile könnte eine leere Zelle.
Nach einigen Tests auf dem Blatt, durch drücken von STRG & aus dem lastring Punkt LR_wbSelect
Spalte "B" ignoriert die Daten in den Zeilen und gehen Sie zu der Zeile, wo es zu finden Daten. Ich kann nicht einen Grund sehen, warum excel nicht denke, dass es Daten, die in diesen Zellen??
Hoffentlich habe ich erklärt, dass, so dass Sie Folgen können, wenn nicht bitte Fragen.
Wenn es sein muss kann ich hochladen den vollständigen code, falls benötigt, lasst es mich einfach wissen.
Jede mögliche Hilfe würde geschätzt.
Max
lastrow in beiden Spalten A und B.Danke für die Antwort, ich habe versucht meine option mit einem dummy-Daten in einer anderen Arbeitsmappe, die gibt mir die richtigen Ergebnisse, die ich brauche, aber wenn ich versuchen und verwenden Sie es in das richtige Dokument ist nicht arbeiten wollen. Ich werde zu aktualisieren, die Frage besser zu zeigen das problem.
noch nicht sicher, was ist das Ergebnis, die Sie versuchen zu erreichen ? Sie wollen Lesen Sie die Letzte Zeile In Spalte B vor dem 10 leere Zeilen (was bedeutet, dass Zeile 18) ? oder Sie wollen erreichen, Zeile 31 ? (Letzte Zeile mit Daten in Spalte B) ?
ich möchte die Letzte Zeile in Spalte B und erhalten Zeile 18 als Ergebnis. Ich habe festgestellt, dass beim drücken von Strg und den Pfeil in Spalte überspringt die besiedelten Zellen in die Spalte und nimmt an den Anfang der Seite.
siehe meine Antwort unten und lassen Sie mich wissen, wenn es das ist was du meintest
InformationsquelleAutor atame | 2016-11-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es mehrere Ergebnisse und Methoden bei der Suche nach der LastRow (in Spalte B).
Bei der Verwendung
Cells(.Rows.Count, "B").End(xlUp).Row
erhalten Sie die Letzte Zeile mit Daten in Spalte B (ignoriert Zeilen, die mit Leerzeichen, und geht den ganzen Weg nach unten).Wenn Sie verwenden:
Sind Sie auf der Suche für die Letzte Zeile mit Daten in Spalte B der
CurrentRegion
, das beginnt von der Zelle B10, bis die erste Zeile ohne Daten (es hält auf die erste Zeile mit einer leeren Zeile).Vollständige Code:
Edit1: code sucht die Letzte Zeile Zellen mit Werten (es ignoriert leere Zellen mit Formeln drin).
du bist herzlich willkommen
InformationsquelleAutor Shai Rado
Hoffe, dieser code hilft !
InformationsquelleAutor Rockstar
Wenn Ihr wbshtSelect ist definiert als Arbeitsblatt und die Sie verwendet haben, legen Sie definieren die spezifischen Arbeitsblatt, die Sie verwenden können.
Sonst nehmen Sie einen Blick hier http://www.ozgrid.com/VBA/ExcelRanges.htm
InformationsquelleAutor Niclas
Warum verwenden Sie "LR_wbSelect" als Zeilen-Zähler? Wenn du wissen willst, die Letzte Zeile von Spalte " B " verwenden, sollten Sie Zeilen.Graf
Zeilen.count --> Gibt die maximale Anzahl von Zeilen (die ist 1048576 für Excel 2007 und höher)
End(xlUp) --> Bewegt sich der Zeiger nach oben, um die Letzte verwendete Zeile
So,
Zellen(Zeilen werden.count, "A").End(xlUp).Zeile --> Dieser bewegt den Zeiger auf die Letzte Zeile, wenn die Spalte 'A' (wie wenn Sie drücken Sie Strg+nach-Oben-Tasten, wenn A1048576 Zelle ausgewählt ist)
So, Zeilen.zählen, wählen Sie die Letzte Zeile der Spalte 'B' als gut. Wenn Sie irgendeine spezifische Anforderung LR_wbSelect, bitte erwähnen Sie es.
Alternativ, wenn Sie wollen, um zu wissen, die Letzte Zeile verwendet, in einem Blatt, können Sie die unten:
InformationsquelleAutor ArindamD
InformationsquelleAutor Punith
Ich kam hierher auf der Suche nach ein Weg, um die Letzte Zeile in einer nicht zusammenhängende Bereich. Die meisten Antworten hier nur prüfen, eine Spalte zu einem Zeitpunkt also schuf ich ein paar verschiedene Funktionen, um dieses problem zu lösen. Ich will zugeben, obwohl, dass Shai Rado Antwort ist im wesentlichen die gleiche wie meine
.Find()
Umsetzung.Umsetzung 1 - Verwendet
Range().End(xlUp)
auf jede SpalteUmsetzung 2 - Verwendet
Range().Find()
in umgekehrter ReihenfolgeUmsetzung 3 - Schleife über ein Array in umgekehrter Reihenfolge
Habe ich noch nicht getestet, welche dieser Implementierungen geht am schnellsten auf große Mengen von Daten, aber ich könnte mir vorstellen, dass der Gewinner wäre
_Array
da es nicht die Schleife durch jede Zelle auf dem Blatt einzeln, sondern stattdessen eine Schleife durch die Daten im Speicher abgelegt. Jedoch, ich habe alle 3 zur Auswahl 🙂Wie zu verwenden
Um diese Funktionen zu verwenden, Sie legen Sie Sie in das code-Blatt/Modul, einen Bereich anzugeben, da Ihre parameter, und dann werden Sie zurückkehren "kleinsten" gefüllte Zeile in diesem Bereich.
Hier ist, wie Sie können jede von Ihnen zu lösen das erste problem, dass gefragt wurde:
Jeder dieser zurück
18
.CurrentRegion
weil eine Menge der Zeit, dass ich kann verwenden Sie diese Funktion, gibt es Lücken in den Daten, die UrsacheCurrentRegion
geben falsche AntwortenWenn Sie finden, übergeben Sie einen bestimmten Bereich einer dieser Pausen, bitte Kommentar lassen Sie mich wissen und ich werde es beheben!
InformationsquelleAutor Marcucciboy2
Range().End
bringen Sie zu dem Ende ein code-block. Wenn die Start-Zelle leer ist, bringt es Sie in der ersten Zelle verwendet oder die Letzte Zelle. Es die Zellen nicht leer ist, bringt es Sie zur letzten verwendeten Zelle. Aus diesem Grund, Sie brauchen, um zu prüfen, ob die Zelle in Spalte B ist, um festzustellen, obLR_wbSelectNew
als Letzte Zeile.Dieser code definiert eine Ziel-Bereich, erstreckt sich von A1 bis zur letzten Zeile in Spalte a - 22 und erstreckt sich 10 Spalten.
InformationsquelleAutor
Das problem mit dem Versuch, dies zu tun, ist, dass, wenn eine Zelle eine Formel enthält, dann excel denkt, es ist bevölkert, auch wenn die Formel ist die Rückgabe eine leere.
InformationsquelleAutor atame
InformationsquelleAutor Jayant Kumar jain
Shai Rado die erste Lösung ist ein großer, aber für manche ist es vielleicht brauchen Sie ein bisschen mehr Ausarbeitung:
Wenn Sie wissen wollen, die Letzte verwendete Zeile in der gesamten Arbeitsblatt:
Wenn Sie finden diese hilfreich, bitte upvote seine Antwort.
InformationsquelleAutor gibberish