Zweidimensionales Array per Function zurückgeben

VBFreak

Mitglied
Hallo,

ich habe eine Function geschrieben, die ein zweidimensionales String-Array zurückgeben soll.
In der Hauptmethode steht:
PHP:
Sub Main(str_to_split AS String)
...
Dim str_array() AS  String
str_array=SplitString(str_to_split)
...
End Sub
Und in der Function:
PHP:
Function SplitString(ByRef str AS String) AS String()
... Prozesse zum Finden der Dimensionen des künftigen Arrays
Redim strArray(Dim1,Dim2)
... Prozesse zum Splitten und Füllen des Arrays
SplitString=strArray
End Function

Bei mir kommt immer "Kompiler-Error: Can't assign to array!" an der letzten Zeile der Function.

Wenn ich aber das "AS String()" im Function-Kopf weglasse, kommt "Error 9:subscript out of range!" beim Funktionsaufruf in Main.

Wo liegt der Fehler?
 
Wenn Du einen String splittest, erhälst Du erstmal ein eindimensionales Array mit verschiedenen Index-Werten.

Wenn also der String "Nachname|Vorname|Strasse|PLZ|Ort|" ist, dann würdest Du beim Splitten mit

Code:
dim strSplitted() As String
strSplitted = Split(strToSplit,"|",vbTextCompare)

das Stringarray strSplitted(Nachname,Vorname,Strasse,PLZ,Ort) erhalten und beim Zugriff auf Vorname wäre Deine Codezeile

Code:
Dim strVorname As String
strVorname = strSplitted(1)

Anschließend kannst Du erst Dein zweidimensionales Array mit Daten füllen.
 
Hi VBFreak,

Arrays kannst du nur als Variant-Typ zurückgeben. Also ersetze mal dein "AS String()" mit "As Variant", dann müßte es eigentlich funktionieren.
 
Problem abgegeben

Alles klar, danke. Ich konnts nicht ausprobieren, ob dein Hinweis klappt, denn ich habe das Problem an einen anderen abgeben müssen ( oder können :p ). Soll der sich doch damit rumschlagen! :D
 
Zurück