2016-10-05 13 views
0

Ich habe einige VBA-Code, der einen Bereich von A84 bis X auswählen muss. Ich verwende diesen Code, um den Bereich auf die letzte Zeile in den Daten auszuwählen.Excel VBA - Bereich bis zur letzten leeren Zeile auswählen

Dim Lastrow As Integer 
Lastrow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row 

Range("A84:X" & Lastrow).Select 

Dies stoppt in der ersten Zeile mit einer leeren Zelle in der Spalte A. Ich brauche es, um die Spalten A bis Z zu überprüfen, nicht nur A. Zum Beispiel, wenn in Spalte A in den Zeilen 84 bis 94 ein Wert ist, aber für Zeile 95 gibt es nur Daten in Spalte F oder R, die nicht enthalten sind Zeile 95. Wie kann man die Spalten A: Z betrachten, um festzustellen, ob die Zeile leer ist?

+0

Spalte ** X ** oder Spalte ** Z ** ?? –

+0

Nun, ich muss Spalte X im Bereich auswählen, aber ich brauche es, um A: Z zu überprüfen, ob es leer ist oder nicht. – Robby

Antwort

2

gesetzt einfach Lastrow zu

Lastrow = Range("A:Z").Find("*", , , , xlByRows, xlPrevious).Row 
0

Ich bin so gut wie sicher gibt es einen besseren Weg, aber ein solcher Weg ist durch Sie Spalten in einer Schleife und die letzte Zeile jeder finden und dann bestimmen, welche von das ist das Größte.

maxRow = 0 
for i=1 to 24 'A through X 
    if maxRow < ActiveSheet.Cells(Rows.Count, i).End(xlUp).Row then 
     maxRow = ActiveSheet.Cells(Rows.Count, i).End(xlUp).Row 
    end if 
next i 

Dann maxRow ist, was Sie lastrow sein wollen.

0

Sie könnten durch alle Spalten iterieren und die letzte Zeile jeder Spalte vergleichen. Sie könnten dann die LastRow Variable ändern, wenn Sie eine Spalte mit mehr Zeilen wie so finden:

Dim i As Integer 
Dim lastRow As Integer 
lastRow = 1 
For i = 1 To 26 
    Dim lst As Integer 
    lst = Cells(Rows.Count, i).End(xlUp).Row 
    If lst > lastRow Then 
     lastRow = lst 
    End If 
Next 
Range("A84:X" & lastRow).Select 
0

Sie können von der Usedrange-Funktion machen, die das komplette Spektrum der verwendeten Zellen auf dem Blatt zurück :, wie folgt:

Worksheets („Worksheet“). UsedRange.lastRow

Dies würde Ihnen die letzte verwendet Reihe, nicht nur die letzte Zeile mit Daten in der ersten Spalte

Verwandte Themen