Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1136to1140
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

ArrayList in einsbasiertes IntegerArray umwandeln

ArrayList in einsbasiertes IntegerArray umwandeln
Jörg
Hallo zusammen!
Ich habe eine ArrayList, die ausschließlich Integer Werte enthält. Für eine Parameterübergabe benötige ich diese Wert als einsbasierte Integer Array. Kann die Anforderung an die Parameter leider in ändern.
Ich habe jetzt zwei Fragen.
1. Wie funktioniert toarray(Type)?
Vor allem was muss ich in die Klammer schreiben?
Integer funktioniert nicht, 2 auch nicht.
2. Wie kann ich die Indexbasis möglich einfach ändern?
Toarray gibt ein nullbasiertes Array zurück.
Hier mal ein Beispielcode.

Private Sub test()
Dim x() As Variant
dim y() as integer
Dim test As Object
Set test = Nothing
Set test = CreateObject("System.Collections.ArrayList")
test.add 1
test.add 1
test.add 1
x = test.toarray() 	'funktioniert
y= test.toarray(integer)   'Syntaxfehler
y= test.toarray(2)  'Laufzeitfehler 450
'Falsche Anzahl an Argumenten oder ungültige Zuweisung zu einer  Eigenschaft
End Sub

Ich kenne mich mit den Variablen Typen nicht aus.
Jörg

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

Betreff
Benutzer
Anzeige
AW: ArrayList in einsbasiertes IntegerArray umwandeln
18.02.2010 17:36:03
fcs
Hallo Jörg,
die Funktion toarray() scheint eine nicht dokumentierte VBA-Funktion zu sein, die ihren Ursprung in VB oder einer anderen Programmiersprache hat.
Jedenfalls wird unter VBA-Excel 2007 keine Hilfe hierzu angeboten.
Parameter hierzu kenn ich nicht.
Ein Weg, die Arrayliste in ein Integer-Array mit der Basis 1 zu überführen ist die Einzelwertübertragung in das Array.
Gruß
Franz
Private Sub test()
Dim iI As Long, iJ As Long
Dim y() As Integer
Dim test As Object
Set test = Nothing
Set test = CreateObject("System.Collections.ArrayList")
test.Add 1
test.Add 2
test.Add 3
iI = 0
For iJ = LBound(test.toarray()) To UBound(test.toarray())
iI = iI + 1
ReDim Preserve y(1 To iI)
y(iI) = test.toarray()(iJ)
Next
End Sub

Anzeige
AW: ArrayList in einsbasiertes IntegerArray umwandeln
18.02.2010 19:25:00
Jörg
Hi,
die Einzelwertübertragung wollte ich verhindern, aber wenn niemand eine andere Lösung hat :-(
Danke für den Tipp
Jörg
AW: ArrayList in einsbasiertes IntegerArray umwandeln
18.02.2010 20:06:33
Nepumuk
Hallo,
Type ist eine Klasse in .net. In deinem Fall wäre der Type Sytem.Int32. Das kannst du aber in VBA nicht benutzen.
Also: Fleißig mit der Schaufel weiterarbeiten. ;-)
Gruß
Nepumuk

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige