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

String in Array umwandeln

String in Array umwandeln
19.09.2017 16:17:41
Alifa
Hallo,
wie kann eine Zeichenkette s="xaxxbxxxcxdx" in ein Datenfeld v=Array(a,b,c,d) umgewandelt werden? "x" ist der Separator und a,b,c,d Variabeln. Im Beispiel soll LBound(v)=0 und UBound(v)=3 sein. Danke im Voraus für eure Hilfe
Gruß, Alifa

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: String in Array umwandeln
19.09.2017 16:32:03
Beverly
Hi Alifa,
vielleicht gibt es noch eine einfachere Methode, aber mir fällt gerade nur diese ein:
Sub Extrahieren()
Dim strS As String
Dim arrDaten
Dim arrZiel()
Dim intZaehler As Integer
Dim intZiel As Integer
strS = "xaxxbxxxcxdx"
arrDaten = Split(strS, "x")
For intZiel = LBound(arrDaten) To UBound(arrDaten)
If arrDaten(intZiel)  "" Then
ReDim Preserve arrZiel(0 To intZaehler)
arrZiel(intZaehler) = arrDaten(intZiel)
intZaehler = intZaehler + 1
End If
Next intZiel
End Sub


AW: String in Array umwandeln
19.09.2017 18:43:59
Alifa
Hallo Beverly,
vielen Dank. Das klappt. Es war für mich interessant auch wegen "ReDim",mit dem ich so meine Schwierigkeiten habe...
Gruß, Alifa
Anzeige
AW: String in Array umwandeln
19.09.2017 16:52:50
Mullit
Hallo,
als Alternative eignet sich für sowas auch immer ne 'Regenechse'...
Option Explicit

Public Sub test()
    Dim objRegEx As Object, objMatch As Object
    Dim strText As String
    Dim lngIndex As Long
    strText = "xaxxbxxxcxdx"
    Set objRegEx = CreateObject(Class:="vbscript.regexp")
    With objRegEx
        .Global = True
        .IgnoreCase = True
        .MultiLine = False
        .Pattern = "[^x]"
        Set objMatch = .Execute(strText)
    End With
    For lngIndex = 0 To objMatch.Count - 1
        Debug.Print objMatch(lngIndex)
    Next
    Set objRegEx = Nothing
    Set objMatch = Nothing
End Sub


VBA/HTML - CodeConverter für Office-Foren
AddIn für Excel/Word 2000-2010 - komplett in VBA geschrieben von Lukas Mosimann
Projektbetreuung durch mumpel



Code erstellt und getestet in Office 12

Gruß, Mullit
Anzeige
Mit Split, dem leckeren Orange-Vanille-Eis
19.09.2017 17:28:32
lupo1
v = Split(Worksheetfunction.Trim(Replace(s, "x", " "))
AW: Mit Split, dem leckeren Orange-Vanille-Eis
19.09.2017 17:48:53
Luschi
Hallo lupo1,
mit 1 Klammer mehr wird es dann ein Sahne-Orange-Vanille-Eis.
Gruß von Luschi
aus klein-Paris
Die Klammer schenkt ihm der Editor dazu ;) owT
19.09.2017 19:14:48
lupo1
Falls das ohnehin in einen ZellBereich ...
19.09.2017 17:48:21
Luc:-?
…geschrieben wdn soll, Folks,
würde schon Folgendes reichen:
{=VSplit(VJoin(VSplit(BX1;"x");;-1))} oder
{=VSplit(MaskOn(BX1;"x";1);;-1)} oder
{=DataSet(VSplit(BX1;"x");"";-1;;1)} oder mit spezieller UDF
{=compSplit(BX1;"x")}
Die UDFs könnten auch in einer SubProzedur angewendet wdn, bei letzterer ggf auch nur ihre entsprd angepasste gerademal eine BefehlsZeile:
Function compSplit(Bezug, Optional ByVal TrennZ)
compSplit = Split(WorksheetFunction.Trim(Join(Split(Bezug, TrennZ))))
End Function
Die anderen, universelleren UDFs sind im Archiv zu finden:
MaskOn (Vs2.1): https://www.herber.de/cgi-bin/callthread.pl?index=1344962#1345181
DataSet (Vs1.3): https://www.herber.de/forum/archiv/1504to1508/t1507939.htm#1508954
VJoin (Vs1.4) & VSplit (Vs1.1): https://www.herber.de/bbs/user/99024.xlsm (in BspDatei)
Gruß, Luc :-?
Besser informiert mit …
Anzeige
AW: Falls das ohnehin in einen ZellBereich ...
19.09.2017 18:48:19
Alifa
vielen Dank an alle Helfer. Luc hat mit seiner vierten Klammer noch ein Sahnehäubchen drauf gesetzt!
Alifa
Bitte sehr... owT
24.09.2017 02:23:14
Luc:-?
:-?

106 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige