VBA Range Objekt

06/01/2011 - 20:57 von Eberhard Funke | Report spam
Hallo,

mit rngZelle sollen alle belegten Zellen in Spalte A einzeln durchlaufen
werden:

For Each rngZelle In ActiveSheet.UsedRange.Columns(1)
'For Each rngZelle In Intersect(ActiveSheet.UsedRange _
.Columns(1), ActiveSheet.Columns(1))
Debug.Print rngZelle.Address, _
ActiveSheet.UsedRange.Columns(1).Address
'hier Abbruch, es kommt nur auf rngZelle.Address an
Exit Sub
Next

rngZelle umfasst aber den gesamten belegten Bereich in Spalte A. How come?
(Mit der zweiten, auskommentierten For-Zeile werden mit rngZelle die Zellen
einzeln angesprochen.)


Mit freundlichen Grüssen
Eberhard Funke XL 2k Win XP
 

Lesen sie die antworten

#1 Claus Busch
06/01/2011 - 21:42 | Warnen spam
Hallo Eberhard,

Am Thu, 6 Jan 2011 20:57:35 +0100 schrieb Eberhard Funke:

For Each rngZelle In ActiveSheet.UsedRange.Columns(1)
'For Each rngZelle In Intersect(ActiveSheet.UsedRange _
.Columns(1), ActiveSheet.Columns(1))
Debug.Print rngZelle.Address, _
ActiveSheet.UsedRange.Columns(1).Address
'hier Abbruch, es kommt nur auf rngZelle.Address an
Exit Sub
Next

rngZelle umfasst aber den gesamten belegten Bereich in Spalte A. How come?
(Mit der zweiten, auskommentierten For-Zeile werden mit rngZelle die Zellen
einzeln angesprochen.)



rngZelle ist zwar ein range-Objekt, aber trotz des Namens nicht eine
einzelne Zelle. rngZelle ist die nàchstkleinere Einheit zu deinem
definierten Range und das ist dann hier der belegte Bereich der Spalte.

Im auskommentierten Teil ist der definierte zu durchlaufende Range die
belegten Zellen in Spalte A und da ist dann die nàchstkleinere Einheit
die einzelne Zelle.


Mit freundlichen Grüssen
Claus Busch
Win XP Prof SP2 / Vista Ultimate SP2
Office 2003 SP2 /2007 Ultimate SP2

Ähnliche fragen