Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
496to500
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
496to500
496to500
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zwei Arrays verbinden

Zwei Arrays verbinden
08.10.2004 11:44:32
imtis
Hallo zusammen,
ich möchte eine Funktion schreiben, die zwei Array miteinander verbindet. Leider läuft sie noch nicht so, wie ich das will.
Bspw. kommt in der Zeile "Debug.Print UBound(Arr3)" immer die Meldung "Typen unverträglich".
Sieht jemand vielleicht einen offensichtlichen Fehler?
Vielen Dank schonmal,
imtis
-----------------------------------------------------------------------------

Function ArraysVerbinden(Array1() As Integer, Array2() As Integer)
Dim ArrayNeu() As Integer
Dim cnt As Integer
cnt = 0
For i = 0 To UBound(Array1)
ReDim Preserve ArrayNeu(cnt)
ArrayNeu(cnt) = Array1(i)
cnt = cnt + 1
Next i
For i = 0 To UBound(Array2)
ReDim Preserve ArrayNeu(cnt)
ArrayNeu(cnt) = Array2(i)
cnt = cnt + 1
Next i
ArrraysVerbinden = ArrayNeu
End Function

-----------------------------------------------------------------------------

Sub test()
Dim Arr1(1) As Integer
Dim Arr2(1) As Integer
Dim Arr3(3) As Integer
Arr3 = ArraysVerbinden(Arr1, Arr2)
Debug.Print UBound(Arr3)
End Sub

-----------------------------------------------------------------------------

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zwei Arrays verbinden
dan
Hallo, das Problem ist, dass Du nicht Option Explicit benutzt. Sonst ist Dein Code OK! Volgenden Code habe ich getestet und es lief OK. Gruss Dan, CZ.
Option Explicit

Function ArraysVerbinden(Array1() As Integer, Array2() As Integer)
Dim ArrayNeu() As Integer
Dim cnt As Integer, i As Integer
cnt = 0
For i = 0 To UBound(Array1)
ReDim Preserve ArrayNeu(cnt)
ArrayNeu(cnt) = Array1(i)
cnt = cnt + 1
Next i
For i = 0 To UBound(Array2)
ReDim Preserve ArrayNeu(cnt)
ArrayNeu(cnt) = Array2(i)
cnt = cnt + 1
Next i
ArraysVerbinden = ArrayNeu
End Function


Sub test()
Dim Arr1(4) As Integer
Dim Arr2(4) As Integer
Dim Arr3() As Integer
Arr1(0) = 1
Arr1(1) = 2
Arr1(2) = 3
Arr1(3) = 4
Arr1(4) = 5
Arr2(0) = 6
Arr2(1) = 7
Arr2(2) = 8
Arr2(3) = 9
Arr2(4) = 10
Arr3 = ArraysVerbinden(Arr1, Arr2)
Debug.Print UBound(Arr3)
End Sub

Anzeige
AW: Zwei Arrays verbinden
Harald
Hallo Imtis,
Eine Funktion kann m.W. kein Array zurückgeben. Du musst wohl den unschönen Web üner eine

Sub und ein öffentliches Array (public) nehmen.
Ein Tip. Du kannst Die Dimensionen des neuen Array vorher bestimmen, dann laufen die Schleifen schneller:
Option Explicit
Option Base 0
Public Arrayneu() As Integer

Sub test()
Dim Arr1(1) As Integer
Dim Arr2(1) As Integer
Arr1(0) = 1
Arr1(1) = 2
Arr2(0) = 33
Arr2(1) = 11
Call ArraysVerbinden(Arr1, Arr2)
Debug.Print UBound(Arrayneu)
End Sub


Sub ArraysVerbinden(Array1() As Integer, Array2() As Integer)
Dim cnt As Integer
Dim i As Long
cnt = 0
ReDim Preserve Arrayneu(UBound(Array1) + 1 + UBound(Array2) + 1) ' Ubound() +1, da 0 der unterste Index ist
For i = 0 To UBound(Array1)
Arrayneu(cnt) = Array1(i)
cnt = cnt + 1
Next i
For i = 0 To UBound(Array2)
Arrayneu(cnt) = Array2(i)
cnt = cnt + 1
Next i
End Sub

Gruß Harald
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge