Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
500to504
500to504
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Leerzeichen am Anfang entfernen

Leerzeichen am Anfang entfernen
17.10.2004 17:49:52
Steffen
Hallo, ich habe ein Problem.
Mit dem untenstehen Code will ich den Text in einer Zelle, der durch " / " getrennt wird in zwei verschiedene Zellen schreiben. Das fuktioniert auch so weit. Nun habe ich aber folgendes Problem. Der Text hinter dem "/" fängt mit einem Leerzeichen an: TExt1 / Text2. Wenn der Text2 nun in die Spalte 4 geschrieben wird, steht an seinem Anfang ein Leerzeichen. Besteht die Möglichkeit dieses Leerzeichen zu entfernen?
Wüd mich freuen, wenn mir jemand helfen könnte.
Gruß
Steffen
For lngRow = 11 To Cells(Rows.Count, 3).End(xlUp).Row
If InStr(1, Cells(lngRow, 3).Text, " / ") Then
varArray = Split(Cells(lngRow, 3).Text, "/")
Cells(lngRow, 3) = varArray(0)
Cells(lngRow, 4) = varArray(1)
End If
Next

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Leerzeichen am Anfang entfernen
17.10.2004 17:53:17
Ramses
Hallo
ungetestet, aber probier mal

For lngRow = 11 To Cells(Rows.Count, 3).End(xlUp).Row
If InStr(1, Cells(lngRow, 3).Text, " / ") Then
varArray = Split(Cells(lngRow, 3).Text, "/")
Cells(lngRow, 3) = Trim(varArray(0))
Cells(lngRow, 4) = Trim(varArray(1))
End If
Next
Gruss Rainer
AW: Leerzeichen am Anfang entfernen
17.10.2004 17:54:51
th.heinrich
hallo Steffen,
BEARBEITEN-ERSETZEN
Cells.Replace What:=" ", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False
gruss thomas
AW: Leerzeichen am Anfang entfernen
17.10.2004 17:58:19
Ulf
Cells(lngRow, 3) = Trim$(varArray(0))
Cells(lngRow, 4) = Trim$(varArray(1))
Durch das $ wird der Code schneller!
Ulf
Anzeige
AW: Leerzeichen am Anfang entfernen
17.10.2004 18:08:20
Ramses
Hallo Ulf
Sorry für die dumme Frage:
Aber warum soll der Code schneller werden ?
Bei 25'000 Datensätzen entdecke ich keinen Unterschied. Auf die Sekunde gleich.
Gruss Rainer
AW: Leerzeichen am Anfang entfernen
17.10.2004 18:13:01
Ulf
Ist wahrscheinlich in bei den heutigen Rechnerleistungen kaum noch wichtig, aber so
es dem Kopiler der Datentyp schon bekannt und muss nicht erst zur Laufzeit ermittelt werden.
Ulf
AW: Leerzeichen am Anfang entfernen
17.10.2004 18:21:41
Ramses
Hallo Ulf
Das Array ist doch als Variant deklariert ?
Wird mit dem Splitvorgang noch keine Erkennung des Datentyps durchgeführt ?
Bei O97 sollte es ja egal sein, weil das Array dort sowieso als String deklariert werden muss.
Gruss Rainer
Anzeige
AW: Leerzeichen am Anfang entfernen
17.10.2004 18:39:52
Ulf
Egal ob Array oder nicht, Textfunktionen sind nach der reinen Lehre etwas performanter,
wenn der Datentyp mit $ festgelegt wird, siehe Trim$, Left$, Mid$ usw.
Ulf
Danke für die Info :-) o.T.
17.10.2004 19:42:09
Ramses
...
AW: Leerzeichen am Anfang entfernen
17.10.2004 18:48:14
andre
Hallo allerseits,
das Geschwindigkeitsthema geht in eine andere Richtung. Das Problem ist, dass Excel mit Formeln deutlich schneller rechnet als mit code, und das if... ist bei der codeversion auch von Belang. Testet mal die 3 Varianten.

Sub test()
For i = 1 To 20000
Cells(i, 1) = "test" & i & " / " & "gut"
Next
End Sub


Sub test1()
'celleron 2600, ca. 40 s
Cells(1, 2) = Format(Now, "hh:mm:ss")
For lngRow = 2 To 20000
If InStr(1, Cells(lngRow, 1).Text, " / ") Then
varArray = Split(Cells(lngRow, 1).Text, "/")
Cells(lngRow, 2) = Trim(varArray(0))
Cells(lngRow, 3) = Trim(varArray(1))
End If
Next
Cells(20001, 2) = Format(Now, "hh:mm:ss")
End Sub


Sub test2()
'celleron 2600, ca. 26 s
Cells(1, 5) = Format(Now, "hh:mm:ss")
On Error Resume Next
For lngRow = 2 To 20000
varArray = Split(Cells(lngRow, 1).Text, "/")
Cells(lngRow, 5) = Trim(varArray(0))
Cells(lngRow, 6) = Trim(varArray(1))
Next
Cells(20001, 5) = Format(Now, "hh:mm:ss")
End Sub


Sub test3()
'celleron 2600, ca. 2 s
Cells(1, 8) = Format(Now, "hh:mm:ss")
Range("h2:h20000").FormulaR1C1 = "=LEFT(RC[-7],FIND("" / "",RC[-7])-1)"
Range("i2:i20000").FormulaR1C1 = "=RIGHT(RC[-8],LEN(RC[-8])-FIND("" / "",RC[-8])-2)"
Range("h2:i20000").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Cells(20000, 8) = Format(Now, "hh:mm:ss")
End Sub

Anzeige
AW: Leerzeichen am Anfang entfernen
17.10.2004 19:04:57
Ulf
dass Tabellenfunktionen um Längen schneller sind als VBA- Code ist ja klar, sind auch
kein Interpretercode.
Ulf
AW: Leerzeichen am Anfang entfernen
17.10.2004 18:02:56
Steffen
Hallo
veilen Dank, habe das von Ramses probiert und funktioniert.
Gruß
Steffen

345 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige