Splitt() mit array ausführen

Moderator: ModerationP

Splitt() mit array ausführen

Beitragvon Neno » 14. Jun 2018, 14:14

Hallo zusammen,

hänge gerade an der Fehlermeldung "Typen unverträglich" bei Variable v_str, die als variant deklariert ist:

Code: Alles auswählen
v_str = Split(v_xxx, "/")                   
v_lev = UBound(v_str) - 1

mit array geht es auch nicht:
v_str = Split(arr(i, 1), "/")                   
v_lev = UBound(v_str) - 1


Wenn ich statt array oder variable v_xxx einen Zellbezug hab, funktioniert der Code:

Code: Alles auswählen
v_str = Split(.Cells(i, 12).Value, "/")                               
v_lev = UBound(v_str) - 1



Ich brauche aber in Splitt() statt Zelle ein array oder variable. Weiß jemand, wie ich die Fehlermeldung wegbekomme?

gruss
Neno
 

Re: Splitt() mit array ausführen

Beitragvon Fen » 14. Jun 2018, 14:18

Hallo,

Code: Alles auswählen
'dim Sp
Tx = "abc / def"

Sp = split(Tx, "/")
msgbox Sp(0) & ", " & Sp(1)


Ergebnis sollte "abc, def" sein.

mfg
Fen
 

Re: Splitt() mit array ausführen

Beitragvon Neno » 14. Jun 2018, 14:41

Fen hat geschrieben:Hallo,

Code: Alles auswählen
'dim Sp
Tx = "abc / def"

Sp = split(Tx, "/")
msgbox Sp(0) & ", " & Sp(1)


Ergebnis sollte "abc, def" sein.

mfg



bei mir sieht die Zeichenfolge so aus:
Tx = "/ abc / def"

Kann es sein, dass die Meldung kommt, weil ich vorne noch ein "/" hab?

gruss
Neno
 

Re: Splitt() mit array ausführen

Beitragvon Pearli123 » 14. Jun 2018, 14:54

Hi,

nein, dein unterster Wert ist dann halt Leer.
Was ist denn die Zeichenfolge, die du trennen willst, also genau die, die du da im Code hast?
Pearli123
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1034
Registriert: 20. Feb 2017, 13:38

Re: Splitt() mit array ausführen

Beitragvon juvee » 14. Jun 2018, 15:17

Hi

aus der allseits vernachlässigten Hilfe

Split(expression[, delimiter[, limit[, compare]]])
expression Erforderlich. Zeichenfolgenausdruck, der untergeordnete Zeichenfolgen und Trennzeichen enthält. Wenn expression eine Zeichenfolge der Länge Null ("") ist,.........


woher du deinen Zeichenfolgenausdruck bekommst, ist split egal.

Nu kommt es noch auf den delimiter an, aber das kannst du selber nachlesen

VG Juvee
Ich habe "juvee" am 25.01.2018 gegoogelt. Ich distanziere mich von den ungefähr 252 Einträgen ausdrücklich.
Da binich nich dabei, dat is pri ima, vivaaaaa....lalalala!
juvee
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1937
Registriert: 05. Jun 2014, 12:48

Re: Splitt() mit array ausführen

Beitragvon Neno » 14. Jun 2018, 15:48

Pearli123 hat geschrieben:Hi,

nein, dein unterster Wert ist dann halt Leer.
Was ist denn die Zeichenfolge, die du trennen willst, also genau die, die du da im Code hast?


ist unterschiedlich, z.B. sowas:
/B700/A200
/C100/B700/A200

Bisher gebe ich das in Zellen aus und von dort holt es Splitt(). Wenn ich es aber in eine array-spalte oder eine normale Variable einlese und dann Splitt() machen will, kommt die Meldung "Typ unverträglich"

gruss
Neno
 

Re: Splitt() mit array ausführen

Beitragvon Pearli123 » 14. Jun 2018, 16:46

Hi,

nein, das meine ich nicht. Du kannst dir den Inhalt der Variable zum Zeitpunkt des Fehlers ausgeben lassen, wenn du in den Debug-Modus gehst und dir da im Direktfesnter die Variable anzeigen lässt.
An dem Inhalt wird man dann schon erkennen, das was falsch ist.
Pearli123
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1034
Registriert: 20. Feb 2017, 13:38

Re: Splitt() mit array ausführen

Beitragvon juvee » 14. Jun 2018, 16:49

Hi,
mal dein Beispiel veranschaulicht

Code: Alles auswählen
Sub x()
Dim arr(2) As String
Dim i%, j As Integer
arr(1) = "/ B700 / A200"
arr(2) = "/ C100 / B700 / c200"

For i = LBound(arr) To UBound(arr)
 arr(i) = IIf(Left(arr(i), 1) = "/", Mid(arr(i), 2), arr(i))
 For j = 0 To UBound(Split(arr(i), "/"))
   MsgBox Split(arr(i), "/")(j)
 Next
Next
End Sub


VG Juvee
Ich habe "juvee" am 25.01.2018 gegoogelt. Ich distanziere mich von den ungefähr 252 Einträgen ausdrücklich.
Da binich nich dabei, dat is pri ima, vivaaaaa....lalalala!
juvee
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1937
Registriert: 05. Jun 2014, 12:48

Re: Splitt() mit array ausführen

Beitragvon Neno » 14. Jun 2018, 17:10

Pearli123 hat geschrieben:Hi,

nein, das meine ich nicht. Du kannst dir den Inhalt der Variable zum Zeitpunkt des Fehlers ausgeben lassen, wenn du in den Debug-Modus gehst und dir da im Direktfesnter die Variable anzeigen lässt.
An dem Inhalt wird man dann schon erkennen, das was falsch ist.


Das hab ich doch längst geprüft, array oder variable wird korrekt gefüllt, mit trennzeichen "/".
Der FEhler liegt in der Splitt()-Zeile. Hab ein wenig im Netz gestöbert und andere codes ausgeführt, mal mit variable als string mal als variant deklariert. Das Thema ist irgendwie verwirrend. Muss mir das noch genauer ansehen, wenn ich mehr zeit hab. Weiß jetzt nicht ob bestimmtes zu beachten ist, wenn Splitt in einer for next schleife liegt.

gruss
Neno
 

Re: Splitt() mit array ausführen

Beitragvon Mullit » 14. Jun 2018, 17:56

Hallo,

Deine verkümmerten Code-Bruchstücke helfen nich wirklich weiter, lad ne Bsp.-mappe hoch, dann baut Dir das einer in Nullkommanix ein... 8-)

Gruß, Mullit
Mullit
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 787
Registriert: 16. Jan 2015, 19:31

Re: Splitt() mit array ausführen

Beitragvon juvee » 14. Jun 2018, 18:02

schreib doch split einfach mal ohne doppelT :mrgreen: :mrgreen:

oder besser, lade eine Beispieldatei hoch

VG Juvee
Ich habe "juvee" am 25.01.2018 gegoogelt. Ich distanziere mich von den ungefähr 252 Einträgen ausdrücklich.
Da binich nich dabei, dat is pri ima, vivaaaaa....lalalala!
juvee
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1937
Registriert: 05. Jun 2014, 12:48

Re: Splitt() mit array ausführen

Beitragvon Gast » 14. Jun 2018, 18:11

Hallo.
Also, wenn du das vor hast, was in der Überschrift steht. Das geht nicht. Du kannst kein Array splitten....

Lg. TM
Gast
 

Re: Splitt() mit array ausführen

Beitragvon Mullit » 14. Jun 2018, 18:23

Hallo,
juvee hat geschrieben:schreib doch split einfach mal ohne doppelT :mrgreen: :mrgreen:

..dacht ich auch erst, aber im Code stehts richtig und wäre diese Fehlermeldung...
M$ hat geschrieben:---------------------------
Microsoft Visual Basic for Applications
---------------------------
Compile error:

Sub or Function not defined
---------------------------
OK Hilfe
---------------------------

...was Gast schrieb, wird's wohl sein, mit der Filter-Funktion würde sowas ähnliches gehen, aber so gehts:

Code: Alles auswählen
Option Explicit

Public Sub test()
   Dim astrArray() As String
   Dim strText As String
   strText = "Hallo wie geht es ihnen?"
   astrArray = Split(Expression:=strText, Delimiter:=" ")
   MsgBox astrArray(0)
End Sub

Gruß, Mullit
Mullit
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 787
Registriert: 16. Jan 2015, 19:31


Zurück zu Excel Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: Hajo_Zi, Pearli123 und 17 Gäste