Kontakt  Anfahrtplan   Datenschutzerklärung  Impressum Englisch 

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.


Vielleicht auch interessant für Sie: VBA-Extension Tool.
Produktivitätssteigerung für VBA durch Vereinfachung von Routinearbeiten.

Seitenanfang


Wider dem Blindflug!

Wenn Sie wissen wollen, was so alles auf Ihrem PC passiert!

Lesen Sie dies ...


Einfach - Schnell - Günstig!

Tischrechner als Software.

Jetzt herunterladen und kostenlos testen!

Mehr lesen ...


Effektiver Arbeiten!

Tastenkombinationen können PC-Arbeit erheblich beschleunigen.

Mehr lesen ...


Kleine Helfer für Sie:

Eine Reihe von kostenlosen Online-Berechnungen zur Erleichterung der täglichen Arbeit.

Ausprobieren ...


Wissenswertes!

Sicherheit im PC-Bereich

Es existiert eine kostenlose, einfache und äußert effektive Methode, fast alle Viren, Trojaner, Würmer ...

Mehr lesen ...