Anzeige
Archiv - Navigation
1184to1188
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

Arrays zusammenführen VBA

Arrays zusammenführen VBA
KLE
Hallo,
ich noch mal. Dachte das könnte ich allein - klappt aber irgendwie nicht.
Daher brauche ich noch einmal Eure Hilfe mit Arrays.
Code:
Sub tt()
Dim i As Long, arrTmp(1 To 50), sBody As String
For i = 1 To 50
arrTmp(i) = Cells(i, 1) & ": " & Cells(i, 2)
Next
sBody = Join(arrTmp, vbCrLf)
'sBody dann in die Mail einfügen
End Sub

Habe nun den Code genutzt. Jetzt ist es aber so, dass ich mehrere Bereiche habe (naja, Cheffe).
(Zeile 1-9 und Zeile 15-24 und Zeile 37-40 sowie Zeile 50 einzeln)
Dachte ich lege einzelne Arrays an:
arrTmp1, arrTmp2 usw. mit den jeweiligen Bereichen. Aber wie bekomme ich nun alle arrTmp's in ein Gesamt arrTmpGesamt ?!?!
Vielen Dank und Gruß
Kay
PS:
Das war die Frage vorhin, deren Code ich nun nutze:
https://www.herber.de/forum/messages/1186262.html

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

Betreff
Benutzer
Anzeige
AW: Arrays zusammenführen VBA
11.11.2010 14:11:49
Rudi
Hallo,
ein Array reicht.
Sub tt()
Dim i As Long, arrTmp(), sBody As String, iCounter As Integer
ReDim arrTmp(1 To 100)
For i = 1 To 9
iCounter = iCounter + 1
arrTmp(iCounter) = Cells(i, 1) & ": " & Cells(i, 2)
Next
For i = 15 To 24
iCounter = iCounter + 1
arrTmp(iCounter) = Cells(i, 1) & ": " & Cells(i, 2)
Next
For i = 37 To 40
iCounter = iCounter + 1
arrTmp(iCounter) = Cells(i, 1) & ": " & Cells(i, 2)
Next
iCounter = iCounter + 1
arrTmp(iCounter) = Cells(50, 1) & ": " & Cells(50, 2)
ReDim Preserve arrTmp(1 To iCounter)
sBody = Join(arrTmp, vbCrLf)
'sBody dann in die Mail einfügen
End Sub

Gruß
Rudi
Anzeige
AW: Danke !
11.11.2010 22:15:17
KLE
Hi Rudi,
sorry, dass ich mich erst jetzt melde...kam nicht vorher dazu. ;o(
Habe es probiert und es klappt. Danke !
Vielleicht, wenn es jemand weiß - würde es mich schon interessieren,
wie man mehrere Arrays zusammen packen kann. Gibt es dafür auch
irgend eine Anweisung ?
Gruß
Kay
AW: Danke !
12.11.2010 09:59:21
Rudi
Hallo,
mit eindimensionalen Arrys geht das relativ einfach:
Sub xxx()
Dim arr1(1 To 10), arr2(1 To 5), arr3(1 To 8), arr0
Dim str1 As String, str2 As String, str3 As String
Dim i As Integer
Const sDelim As String = "|"  'Trennzeichen
'Array füllen
With Sheets(1)
For i = 9 To 18
arr1(i - 8) = .Cells(i, 1) & ":" & .Cells(i, 2)
Next
For i = 24 To 28
arr2(i - 23) = .Cells(i, 1) & ":" & .Cells(i, 2)
Next
For i = 35 To 42
arr3(i - 34) = .Cells(i, 1) & ":" & .Cells(i, 2)
Next
End With
'Arrays in Strings umwandeln
str1 = Join(arr1, sDelim)
str2 = Join(arr2, sDelim)
str3 = Join(arr3, sDelim)
arr0 = Join(Array(str1, str2, str3), sDelim) 'die 3 Strings zusammenführen
arr0 = Split(arr0, sDelim)  'String in Array umwandeln
'Alternativ ohne Zwischenschritte
'  arr0 = Split(Join(Array(Join(arr1, sDelim), Join(arr2, sDelim), Join(arr3, sDelim)), sDelim), _
sDelim)
End Sub

Bei mehrdimensionalen Arrays nur per Schleife.
Gruß
Rudi
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge