Anzeige
Archiv - Navigation
1644to1648
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

unstetige Range in Array packen

unstetige Range in Array packen
13.09.2018 11:54:20
Renan
Hallo zusammen,
gibt es eine Möglichkeit einen unstetigen Bereich (zb: "A1:A5" und "A7:A10") in einen Array zu packen?
Ich hatte eventuell daran gedacht für den ersten Bereich ("A1:A5") ein Array zu generieren dann diesen neu zu dimensionieren und den zweiten Bereich ("A7:A10") anschließen zusätzlich hinzuzufügen.
Leider habe ich das code-technisch nicht umgesetzt bekommen. Kann mir eventuell jemand dabei behilflich sein bitte?
Vielen Dank!

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: unstetige Range in Array packen
13.09.2018 12:26:52
Rudi
Hallo,
kann man z.B. so machen
Sub aaa()
Dim r As Range, a(), i
Set r = Union(Range("A1:A5"), Range("A7:A10"))
ReDim a(1 To r.Areas.Count)
For i = 1 To r.Areas.Count
a(i) = r.Areas(i)
Next i
End Sub
Gruß
Rudi
AW: unstetige Range in Array packen
13.09.2018 12:56:14
Gerd
Hallo Renan,
dies ist normalerweise weder sinnvoll noch erforderlich.
Sub test()
Range("A1:A5:A7:A10").Select
Union(Range("A1:A5"), Range("A7:A10")).Select
Intersect(Columns("A"), Range("1:5,7:10")).Select
Union(Cells(1, 1).Resize(5, 1), Cells(7, 1).Resize(4, 1)).Select
End Sub

Die Range kannst du einer Objektvariablen (Dim Bereich as Range : Set Bereich= ...) zuweisen.
Ortsfester wird das ganze, wenn man vor jedes Range und Cells das Worksheet oder. ggf. das Workbook u. Worksheet schreibt.
Gruß Gerd
Anzeige
AW: unstetige Range in Array packen
13.09.2018 14:03:18
Daniel
kommt darauf an, was du genau wie ins Array packen willst, obs ein 1- oder 2-dimensionales Array sein soll.
gernerell solltest du beachten, dass du bei Arrays mit Inhalt die Dimensioniertung nur in der letzten Dimension ohne Datenverlust ändern kannt.
Daher ist es sinnvoll, das Array gleich auf die endgültige Größe zu dimensionieren (falls möglich)
man könnte das beispielsweise so machen:

dim arr
dim i as Long
dim Zelle as Range
dim Bereich as Range
set Bereich = Range("A1:A5,A7:A10")
redim arr(1 to Bereich.Cells.count)
for each Zelle in Bereich
i = i + 1
arr(i) = Zelle.Value
Next
Gruß Daniel
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige