Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Split function in Office 97 | Herbers Excel-Forum


Betrifft: Split function in Office 97 von: Dirk
Geschrieben am: 14.02.2012 10:53:44

Hallo zusammen,

Ich musste gerade feststellen das es in Office 97 die Funktion Split nicht gibt.

hat einer diese Funktion zufälligerweise für mich??

Gruß
Dirk

  

Betrifft: http://www.cpearson.com/Excel/Split.aspx von: NoNet
Geschrieben am: 14.02.2012 10:58:50

Hallo Dirk,


Tante GOOGLE macht's möglich :

http://www.cpearson.com/Excel/Split.aspx

Gruß, NoNet


  

Betrifft: AW: http://www.cpearson.com/Excel/Split.aspx von: Dirk
Geschrieben am: 14.02.2012 11:10:45

Hallo NoNet,

das dachte ich vorhin auch.

leider hatte ich nichts brauchbares gefunden und das Splitex funktioniert auch nicht. :-(

ich habe eine anneiander reihung an Textexten, die ich in ein Array geblittet haben muss.

SplitEx("Cu,Mn,Fe,Cr", ",") da kommt dann sowas hier raus arr(1)="Fe,Cr"

und das ist ja leider nicht richtig

Gruß
Dirk


  

Betrifft: Alternative : SplitNoNet() von: NoNet
Geschrieben am: 14.02.2012 11:35:26

Hallo Dirk,

da hast Du Recht !
Bevor ich mich jetzt auf die Fehleranalyse in diesem Code begebe, habe ich selbst eine einfache kleine SPLIT()-Funktion nachprogrammiert :

Function SplitNoNet(strText As String, Optional strZ As String = ",")
    'Ersatz für SPLIT()-Funktion
    'Aufruf : Msgbox UBOUND(SplitNoNet("abc,def,ghi",","))
    'oder : MsgBox SplitNoNet("Jan/Feb/Mrz/Apr/Mai/Jun","/")(3)
    '14.02.2012, NoNet - www.excelei.de
    
    Dim lngP As Long, strT As String
    Dim arrT()
    ReDim arrT(0)
    strT = strText
    
    While InStr(strT, strZ) > 0
        lngP = InStr(strT, strZ)
        
        If lngP > 0 Then
            arrT(UBound(arrT)) = Left(strT, lngP - 1)
        End If
        strT = Mid(strT, lngP + 1, Len(strT) - lngP)
        ReDim Preserve arrT(UBound(arrT) + 1)
    Wend
    
    arrT(UBound(arrT)) = strT 'letztes Element anhängen
    SplitNoNet = arrT
End Function
Mit SPLITNONET("Jan/Feb/Mrz/Apr/Mai/Jun","/")(3) erhält man das Ergebnis "Apr" (Indizierung beginnt Excel-üblich mit 0)

Gruß, NoNet


  

Betrifft: AW: Alternative : SplitNoNet() von: Dirk
Geschrieben am: 14.02.2012 11:38:29

Du bist ein schatz ;-)

Dank dir
Dirk


  

Betrifft: AW: Alternative : SplitNoNet() von: Dirk
Geschrieben am: 14.02.2012 11:42:55

Das die grundfunktion so kurz wird hätte ich nicht gedacht

Coole Sache
Danke nochmal läuft super


  

Betrifft: @Dirk : Geht auch noch kürzer von: NoNet
Geschrieben am: 14.02.2012 12:50:50

Hallo Dirk,

ein kleines bisschen lässt sich diese UDF noch verkürzen :

Function SplitNoNet(strT As String, Optional strZ As String = ",")
    'Ersatz für SPLIT()-Funktion in älteren EXCEL-Versionen
    'Aufruf : Msgbox UBOUND(SplitNoNet("abc;def;ghi",";")) => 2
    'oder : MsgBox SplitNoNet("Jan/Feb/Mrz/Apr/Mai/Jun","/")(3)
    'oder : MsgBox SplitNoNet("1,2,3")(1) => "2"
    '14.02.2012, NoNet - www.excelei.de
    
    Dim lngP As Long, arrT()
    ReDim arrT(0)
    
    While InStr(strT, strZ)
        lngP = InStr(strT, strZ)
        
        If lngP Then arrT(UBound(arrT)) = Left(strT, lngP - 1)
        strT = Mid(strT, lngP + 1, Len(strT) - lngP)
        ReDim Preserve arrT(UBound(arrT) + 1)
    Wend
    
    arrT(UBound(arrT)) = strT 'letztes Element anhängen
    SplitNoNet = arrT
End Function
Gruß, NoNet


  

Betrifft: AW: Split function in Office 97 von: Oberschlumpf
Geschrieben am: 14.02.2012 11:20:54

Hi Dirk

Und wieso erstellst du nicht deine eigene Split-Funktion?
Is vllt n bissi Arbeit, aber mit VBA = gut sollte es gehen, oder?

Ciao
Thorsten


  

Betrifft: AW: Split function in Office 97 von: Dirk
Geschrieben am: 14.02.2012 11:36:54

moin Thorsten,
eine Funktion an sich zu schreiben ist kein großes Problem.
die Splitfunktion an sich ist aber sehr komplex.
da würd ich ein paar h brauchen, bis ich die habwegs vernünfig am laufen habe.

es gibt hier aber bestimmt den ein oder anderen, der das ganze schon mal nachgebaut hatte.

Gruß
Dirk


  

Betrifft: Ein paar h ? - Habe ich in 10 Min. gemacht ;-) von: NoNet
Geschrieben am: 14.02.2012 11:42:13

Hallo Dirk,

da würd ich ein paar h brauchen

Das ist aber sehr "gemütlich" - kommt natürlich auch auf den Anspruch an !
Ich habe das in ca. 10 Min. runterprogrammiert (mit Tests und Korrekturen) - siehe https://www.herber.de/forum/archiv/1248to1252/t1250605.htm#1250622 - und selbst das ist noch sehr "träge", das kann man sicherlich auch in 3 Min. erledigen - aber ganz so "sportlich" sind meine Finger (und "grauen Zellen") dann doch nicht ... ;-)

Salut, NoNet


  

Betrifft: Mehr hätte mich auch verwundert! ;-) orT von: Luc:-?
Geschrieben am: 15.02.2012 01:26:28

Gruß Luc :-?


Beiträge aus den Excel-Beispielen zum Thema "Split function in Office 97"