2017-05-28 12 views
0

Ich versuche, die letzte Zeile und Spalte eines verwendeten Bereichs zu erhalten.vba-Letzte Zeile und Spalte des verwendeten Bereichs

Um die letzte Zeile und Spalte ich den Code verwenden, zu erhalten unter

Dim varCurrentUsedRange As Variant 
Dim LastRow As Long 
Dim LastCol As Long 

varCurrentUsedRange = ActiveSheet.UsedRange 

LastRow = UBound(varCurrentUsedRange) 
LastCol = UBound(varCurrentUsedRange , 2) 

Dieser Code genau Anzahl der zuletzt verwendeten Zeile zurückgibt, auch die erste gebrauchte Zelle ist es nicht in Reihe 1.

Aber Gibt die Anzahl der verwendeten Spalten und nicht die zuletzt verwendete Spalte zurück.

Wenn beispielsweise die erste verwendete Spalte 2 und die letzte 6 ist, wird erwartet, dass sie 6 zurückgibt, aber nur 5 zurückgibt (Nummer der verwendeten Spalte).

So, wie die letzte verwendete Spalte Nummer unabhängig von der Startspalte erhalten?

Vielen Dank im Voraus.

+1

Haben Sie gesehen [This] (https://stackoverflow.com/questions/11169445/error-in-finding-last-used-cell-in-vba/11169920#11169920) –

Antwort

1

Beachten Sie Folgendes:

Sub range_reporter() 
    Dim r As Range 
    Dim s As String 
    Dim nLastRow As Long, nLastColumn As Long 
    Dim nFirstRow As Long, nFirstColumn As Long 

    ActiveSheet.UsedRange 
    Set r = ActiveSheet.UsedRange 

    nLastRow = r.Rows.Count + r.Row - 1 
    MsgBox ("last row " & nLastRow) 

    nLastColumn = r.Columns.Count + r.Column - 1 
    MsgBox ("last column " & nLastColumn) 

    nFirstRow = r.Row 
    MsgBox ("first row " & nFirstRow) 

    nFirstColumn = r.Column 
    MsgBox ("first column " & nFirstColumn) 

    numrow = r.Rows.Count 
    MsgBox ("number of rows " & numrow) 

    numcol = r.Columns.Count 
    MsgBox ("number of columns " & numcol) 
End Sub 

Er definiert einige der Eigenschaften von Usedrange.
Es ist nicht darauf angewiesen, ein internes VBA-Array zu erstellen.

+0

Vielen Dank @ Gary's Student .. Nur ein Kommentar zu Ihrem Code .. die Zeile nFirstRow = r.Row gibt immer 1 zurück, auch wenn die erste verwendete Zeile 2 oder 3 ist .... Während nFirstColumn = r.Column gibt genau die Nummer der ersten verwendeten Spalte zurück. – user3286479

+0

@ user3286479 Versuchen Sie den Code auf einem neuen Arbeitsblatt. –

Verwandte Themen