Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
952to956
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
952to956
952to956
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

String als Array

String als Array
25.02.2008 11:35:00
zink
Hallo,
ich möchte bei Zeichenfolgen, die in eine Zelle eingegeben werden, eine komplexe Validierungsprüfung per VBA durchführen.
Dazu prüfe ich jedes einzelne Zeichen des Strings nach bestimmten Regeln auf Gültigkeit.
Meine Frage:
Wie bekomme ich am schnellsten/elegantesten den String in ein Array, das ich dann über eine Schleife bearbeite?
Geht das mit einem Trick, den ich nicht kenne, doch mit der Split-Funktion? Oder muss ich umständlich zu Fuß werkeln in der Art:
myString = "Irgendeine zeichenkette mit verbotenen Zeichen"
Dim myArray() as String * 1, i as integer
ReDim myArray(1 To Len(myString))
For i=1 to len(myString)
myArray(i) = mid$(myString(,i,1)
next i
... dann in einer neuen Schleife die Prüfung ...
Gibts da was besseres? Die dynamischen Arrays lind lahm in der Abarbeitung.
Danke für die Hilfe und Grüße
Joachim

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: String als Array
25.02.2008 11:45:46
Worti
Hallo Joachim,
warum schreibst du den String überhaupt in ein Array? Kannst du die Prüfung nicht direkt auf
mid(myString, i, 1) machen?
Gruß Worti

AW: String als Array
25.02.2008 11:52:21
Erich
Hallo Joachim,
kannst du eine maximale Länge für myString festlegen? (ich hab mal 777 angenommen)
Die nachfolgende Verarbeitung geht dann halt bis iAnz.
Probier mal, ob das damit schneller läuft:

Sub aatst()
Const myString = "Irgendeine zeichenkette mit verbotenen Zeichen"
Dim myArray(1 To 777) As String * 1, iAnz As Integer, i As Integer
iAnz = Application.Min(777, Len(myString))
For i = 1 To iAnz
myArray(i) = Right(Left(myString, i), 1)
Next i
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: String als Array
25.02.2008 13:03:00
Rudi
Hallo,

Probier mal, ob das damit schneller läuft:


Mid(myString,i,1) braucht nur ca 80% der Zeit von Right(Left(myString,i),1)
Bei 100.000 Durchläufen macht sich das bemerkbar. ;-)
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: String als Array
25.02.2008 12:07:00
zink
Hallo,
Danke an Euch - hat mir sehr geholfen. Der Code von Erich funktioniert gut.
Kurze Rückfrage: mit der Split-funktion gibts nicht irgendeinen Trick bei der Angabe des Delimiters, so dass dann im Array alle Zeichen des Strings einzeln stehen? Diese Funktion ist optimiert und sehr schnell ...
Grüße
Joachim
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige