EXCEL 2010 VBA: Anzahl Zeilen und Spalten eines Range

Werbung
EXCEL 2010 VBA: Anzahl Zeilen und Spalten eines Range-Objektes bestimmen
Aktualisiert Montag, den 04. November 2013 um 19:41 Uhr
Wie viele Zeilen und Spalten hat ein Rangeobjekt?
Schreibt man selbst Funktionen für eine EXCEL-Tabelle und erweitert somit den
Funktionsumfang von EXCEL, ist es oftmals angezeigt, direkt Bereiche (Range) aus einer
EXCEL-Tabelle an eine Funktion zu übergeben, um dann innerhalb der Funktion mit den
Inhalten des übergebenen Bereichs weiterarbeiten zu können.
In diesem Artikel wird die Summenfunktion, die EXCEL zugegebenermaßen schon bietet,
nachempfunden. Das ist ein transparentes, nachvollziehbares Beispiel und dann in der Folge
dazu geeignet, an die eigenen Zwecke angepasst zu werden.
Aufgabenstellung
Für den folgenden Bereich soll eine Summe berechnet werden, innerhalb der Funktion muss
die Anzahl Zeilen und Spalten des Range-Objektes ermittelt werden, da eine Übergabe von
Bereichen aus der Tabelle heraus flexibel erfolgen kann:
1/5
EXCEL 2010 VBA: Anzahl Zeilen und Spalten eines Range-Objektes bestimmen
Aktualisiert Montag, den 04. November 2013 um 19:41 Uhr
Derschreiben,
Funktion
Aufruf
derBerechnung
EXCEL-Summe
ist einfach:
InVorarbeiten
Zelle B17 (verbundene
Zelle) befindet
sich
die
=SUMME(A2:D15).
zu
Für
die
eigne
die
ich hier "MeineSumme"
der Summe
sind
nenne.
in VBA notwendig.
Es ist eine
Funkton
Entwicklung einer eigenen Summenfunktion
Begonnen wird mit der Definition der Funktion "MeineSumme", die dann aus der Tabelle heraus
als Funktion verwendet werden kann. Als Übergabeparameter wird eine Range erwartet, die auf
den Namen "vBereich" hört.
Function MeineSumme(ByVal vBereich As Range) As Double
...
End Function
2/5
EXCEL 2010 VBA: Anzahl Zeilen und Spalten eines Range-Objektes bestimmen
Aktualisiert Montag, den 04. November 2013 um 19:41 Uhr
Folgende Variablen werden in der Funktion verwendet und zu Beginn der Funktion bekannt
gemacht und typisiert (Definition der Vartiablenart wie Ganzzahl, Text, reelle Zahl etc).
Dim lZeilen As Long
Dim lSpalten As Long
Dim lZaehlerZeilen As Long
Dim lZaehlerSpalten As Long
Dim dSumme As Double
Die beiden folgenden Zeilen ermitteln die Anzahl Zeilen und Spalten der Range und somit ist
das Rätsel der Ermittlung von der Anzahl von Zeilen und Spalten einer Range gelöst.
lZeilen = vBereich.Rows.Count ' Die Anzahl Zeilen werden bestimmt
lSpalten = vBereich.Columns.Count ' Die Anzahl Spalten werden bestimmt
Jetzt muss nur noch die Summe gerechnet werden und der Funktion "MeineSumme" als
Rückgabewert übergeben werden.
For lZaehlerZeilen = 1 To lZeilen ' Hier werden die Werte in den einzelnen Zellen aufsummiert
For lZaehlerSpalten = 1 To lSpalten
dSumme = dSumme + vBereich.Cells(lZaehlerZeilen, lZaehlerSpalten).Value
Next lZaehlerSpalten
Next lZaehlerZeilen
MeineSumme = dSumme
Hier noch einmal der Programmcode im Zusammenhang
3/5
EXCEL 2010 VBA: Anzahl Zeilen und Spalten eines Range-Objektes bestimmen
Aktualisiert Montag, den 04. November 2013 um 19:41 Uhr
Function MeineSumme(ByVal vBereich As Range) As Double
Dim lZeilen As Long
Dim lSpalten As Long
Dim lZaehlerZeilen As Long
Dim lZaehlerSpalten As Long
Dim dSumme As Double
lZeilen = vBereich.Rows.Count ' Die Anzahl Zeilen werden bestimmt
lSpalten = vBereich.Columns.Count ' Die Anzahl Spalten werden bestimmt
dSumme = 0 ' Wert Initialisieren, ist eigentlich in VBA bei erstmaliger Verwendung nicht
notwendig,
' aber eine alte Gewohnheit
For lZaehlerZeilen = 1 To lZeilen ' Hier werden die Werte in den einzelnen Zellen aufsummiert
For lZaehlerSpalten = 1 To lSpalten
dSumme = dSumme + vBereich.Cells(lZaehlerZeilen, lZaehlerSpalten).Value
Next lZaehlerSpalten
Next lZaehlerZeilen
MeineSumme = dSumme ' Übergabe des Summenergebnisses an das Rückgabeergebnis
von MeineSumme
End Function
Aufruf der Funktion "MeineSumme"
Der Aufruf dieser Funktion erfolgt analog dem Aufruf der Funktion =SUMME(A2:D15), nämlich
mit
=Mein
eSumme(A2:D15)
. In der Beispieltabelle befindet sich diese Funktion in Zelle B16.
Beispiel zum Download
Hier konnen Sie sich das Beispiel herunterladen. Bitte lesen Sie auch den Artikel Die
Verwendung von ParamArray
, das Beispiel wird in diesem Artikel erweitert, so dass die Funktion schon fast so arbeitet wie
die SUMME von EXCEL.
4/5
EXCEL 2010 VBA: Anzahl Zeilen und Spalten eines Range-Objektes bestimmen
Aktualisiert Montag, den 04. November 2013 um 19:41 Uhr
5/5
Herunterladen