Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

InStrRev

Forumthread: InStrRev

InStrRev
15.11.2006 13:26:46
Markus
Hallo,
Ich habe eine Frage zu der Funktion InStrRev.
Und zwar verhält sich die Funktion der merkwürdigIch möchte gerne eine Zeichenkette zerlegen.
Die Zeichenkette ist z.B.
For i=1 to end Text=12345678,12345678,12345678,12345678,12345678,12345678,12345678
last = InStrRev(Text, ",")
Text = Right(Text, last)
next
damit erreiche ich,dass Text bei jedem Durchlauf um ein ,12345678 abschnitt gekürzt wird.
Nun passiert folgendes habe Ich einen dieser Textbereiche mit mehr als 8 Zeichen belegt.
Kommt die Funktion total durcheinander.
Woran kann das liegen?
Vielen Dank Markus
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: InStrRev
15.11.2006 13:44:15
Harald
Hallo Markus,
abgesehen davon, dass bei Deinem Posting der Code ein wenig durcheinander gekommen ist, bist Du m.E: einem Denkfehler unterlegen:
Wenn DU von Rechts abschneiden willst, dann muss es heißen
Text = left(Text,last)
Mit der von Dir gewählten Right-Funktion schneidest Du links ab und behältst rechts so viele Zeichen, wie die InStrRev-Funktion zurückliefert.
Es ist also nicht die Funktion, die durcheinanderkommt, sondern Du. Es ist eigentlich eher zufällig, dass es bei genau 8 Zeichen funktioniert. Probier mal beispielsweise mit Text="12345678,abcdefgh,zyxwvuts"
Gruß Harald
Anzeige
AW: InStrRev
15.11.2006 14:03:33
Markus
Hallo,Harald,
Vielen Dank für deine Antwort.
Ich habe mich wohl nicht richtig ausgedrückt.
Stimt,Ich meinte eigentlich, gekürzt von vorne also links aber das geht bei mir nur mit 8 Zeichen zwischen jedem Komma.
AW: InStrRev
15.11.2006 14:42:34
Harald
Hallo Markus,
ich muss jetzt weg,. Aber ich denke, der Ansatz wäre damit, das erste Komma von links zu suchen, das geht mit InStr(), dann den rechten Teil des Strings nehmen:
Text=right(Text,len(Text)-Instr(Text,","))
Gruß Harald
Anzeige
AW: InStrRev
15.11.2006 13:55:13
Reinhard
Hi Markus,
dein Code ist doch gar nicht lauffähig.
Und um "rechts" immer was abzuschneiden musst du "left" benutzen nicht "Right".
Option Explicit
Sub ttt()
Dim last, Text
Text = "12345678,12345678,12345678,12345678,12345678,12345678,12345678"
While InStrRev(Text, ",")
last = InStrRev(Text, ",")
Text = Left(Text, last - 1)
MsgBox Text
Wend
End Sub
Sub tt()
Dim Text, T, n
Text = "12345678,12345678,12345678,12345678,12345678,12345678,12345678"
T = Split(Text, ",")
For n = 0 To UBound(T)
MsgBox T(n)
Next
End Sub

Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
Anzeige
AW: InStrRev
15.11.2006 14:48:33
Markus
Hallo Reinhard,
Vielen Dank für deine Antwort.
Ich habe mich wohl nicht richtig ausgedrückt.
Stimt,Ich meinte eigentlich, gekürzt von vorne also links aber das geht bei mir nur mit 8 Zeichen zwischen jedem Komma.
AW: InStrRev Fehlalarm
15.11.2006 15:02:51
Markus
Hallo,
Vielen Dank für die Antworten.
Hab jetzt rausbekommen, dass mein Code solange funzt,wenn Ich gleich lange Kommaseparierte Textteile habe.
Markus
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige