Service: Excel-VBA: Anzahl Zeilen und Spalten in Arbeitsblatt

Bei vielen Excel-VBA-Makros muss man die Anzahl der Zeilen und/oder Spalten ermitteln, die mit Daten gefüllt sind. Z.B. um in einer Schleife alle Zeilen zu bearbeiten, die Daten beinhalten.

Z.B. wie in folgendem Pseudo-Code:

    Dim cRow as Long
    For cRow = 1 to AnzahlZeilenInArbeitsBlatt
        ' Irgend eine Art der Verarbeitung
    Next

Leider kenne ich keinen Weg, Excel diese Information auf direktem Weg zu entlocken.

Aber es gibt die UsedRange-Eigenschaft des Arbeitsblattes. UsedRange liefert die gesuchten Daten in 'A1' oder 'R1C1'-Schreibweise.

Das ist eine gute Ausgangsbasis für zwei Funktionen, die die gesuchten Werte mit Hilfe von etwas 'Split()', 'LCase()', 'CLng()' und anderen einfachen 'Zutaten' als Ganzzahl zurückliefern.

'---------------------------------------------------------------------------
' Procedure.: GetWorkSheetRows
' Author....: Ralf Kunsmann - www.kunsmann.de
' Date......: 2007 04 27
' Purpose...: Get the number of rows in an Excel WS, that contain any
'             contents.
'---------------------------------------------------------------------------
Public Function GetWorkSheetRows(ws As Worksheet) As Long

    If ws Is Nothing Then Exit Function

    GetWorkSheetRows = ws.Cells.SpecialCells(xlLastCell).Row

End Function

'---------------------------------------------------------------------------
' Procedure.: GetWorkSheetColumns
' Author....: Ralf Kunsmann - www.kunsmann.de
' Date......: 2007 04 27
' Purpose...: Get the number of columns in an Excel WS, that contain any
'             contents.
'---------------------------------------------------------------------------
Public Function GetWorkSheetColumns(ws As Worksheet) As Long

    If ws Is Nothing Then Exit Function

    GetWorkSheetColumns = ws.Cells.SpecialCells(xlLastCell).Column

End Function

Damit wird der Pseudo-Code vom Anfang etwas konkreter:

    Dim cRow as Long
    For cRow = 1 to GetWorkSheetRows(ActiveSheet)
        ' Irgend eine Art der Verarbeitung
    Next

Die Erlaubnis, den Quellcode zeitlich, räumlich und inhaltlich unbegrenzt zu verwenden wird hiermit erteilt unter der Auflage, dass die Nennung von Ralf Kunsmann als Autor unter Angabe der Web-Adresse www.kunsmann.de im Quellcode erfolgt.


Ergebnis: vollständig vordefinierte Routine mit Fehlerbehandlung Interessant für Sie:

VBA-Extentions-Tools

Produktivität in VBA steigern
Routinearbeiten in VBA vereinfachen



Seitenanfang

Kontaktaufnahme- und Terminvereinbarung:

Bei Fragen und für Terminvereinbarungen erreichen Sie uns unter:

0 63 49 99 07 38

0 151 51 95 34 00

Oder nutzen Sie das Kontaktformular




Ihr Ansprechpartner:


Hier sollte das Fahnungsfoto zu sehen sein.

Ralf Kunsmann

Spezialist für VBA-Programmierung
(alle Office-Anwendungen)
Entwickler der
VBA-Extension-Tools