online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon sphaze vom 05.08.2020, 10:09 Options

Länge eines Strings

Hi Leute,

da mir hier schon letztes mal sehr kompetent geholfen wurde, stelle ich hier erneut eine Frage. Ich les mit VBA aus einer Zelle einen String aus, der aus Zahlen besteht (z.B. 1234). Im Optimalfall steht in der Zelle aber immer eine sechsstellige Zahl (z.B. 001234). Ist sie wie vorhin nur vier stellig, muss ich vorne zwei Nullen anfügen.

Mein Problem ist: Wie finde ich heraus, ob mein String vierstellig oder sechsstellig ist?

Danke im Voraus!


Antwort schreiben

Antwort 1 von riese vom 05.08.2020, 10:17 Options

Das geht ganz einfach:

Dim nLength as Integer
Dim sText As String

sText = "Hallo"
nLength = Len(sText) 'ergibt in diesem Fall 5

adam

Antwort 2 von Teerbaby vom 05.08.2020, 10:20 Options

noch einfacher wäre wahrscheinlich die Format-Funktion zu benutzen

Bsp:
Format("1234","000000")


Ausgabe: 001234

Antwort 3 von nighty vom 05.08.2020, 10:21 Options

hi sphaze

fuer vba ein beispiel

gruss nighty

Sub Abgleich()
If Len(Cells(1, 1)) < 6 Then Cells(1, 1) = Mid("000000", 1, 6 - Len(Cells(1, 1))) & Cells(1, 1)
End Sub

Antwort 4 von sphaze vom 05.08.2020, 10:32 Options

Vielen Dank! Da funktioniert die eine Lösung besser als die andere. Einfach klasse!

Antwort 5 von Saarbauer vom 05.08.2020, 10:35 Options

Hallo,

hiermit wären die führenden nullen mit eingebunden

nLength = REPT(0,6-LEN(sTex]) & sText

Gruß

Helmut

Antwort 6 von rainberg vom 05.08.2020, 11:19 Options

Hallo Helmut,

das stimmt nicht ganz :-))

so wär's richtig

nLenght = WorksheetFunction.Rept(0, 6 - Len(sText)) & sText

Gruß
Rainer

Antwort 7 von sphaze vom 05.08.2020, 11:23 Options

Hi Leute,

ich seh gerade, dass das Problem nicht wirklich gelöst ist. In VBA hängt er zwar zwei Nullen vor vierstellige Zahlen, aber wenn er es dann wieder in ein Sheet schreibt haut Excel die Nullen einfach weg... was soll bitte das?

Antwort 8 von rainberg vom 05.08.2020, 12:35 Options

Hallo,

wie wär's damit?

Option Explicit

Sub Abgleich()
    With Cells(1, 1)
        .NumberFormat = "000000"
        .Value = Cells(1, 1).Value
    End With
End Sub


Gruß
Rainer

Antwort 9 von Flupo vom 05.08.2020, 12:55 Options

Hauptproblem in der Angelegenheit ist die Tatsache, dass Excel Zahlen anders behandelt als Text.
Die Lösungsvorschläge mit dem Zahlenformat funktionieren nur solange, wie auch eine Zahl in der Zelle steht.
Macht man aus der Zahl einen String (indem man die Zelle als "Text" formatiert, oder ein ' vor die Zahl schreibt), sind die führenden Nullen weg.
Du solltest daher sicher stellen, dass in den Zellen Strings stehen (formatiere die Spalte als "Text") und diese dann über Stringmanipulationen richtig formatieren. Die Funktionen für Zeichenketten (len(), left(), right()...) funktionieren dann auch.

Gruß Flupo

Antwort 10 von sphaze vom 05.08.2020, 13:11 Options

Hab das jetzt so gelöst:

Columns("I:I").Select
Selection.NumberFormat = "@"


Und anschließend dann so:


data = Format(data, "000000")


Nun stehen fast immer zwei Nullen davor, Wenn meine "data" aber mit einem Buchstaben beginnt (z.B. A123), fehlen die zwei Nullen. Wieso mach er es dann nicht :/

Antwort 11 von sphaze vom 05.08.2020, 13:28 Options

Update: Lol, jetzt liefert er bei der Selection auch einen Error...

Ähnliche Themen

Summewenn und Zählenwenn mit mehreren Kriterien mit Excel
JoeKe  17.05.2009 - 22592 Hits - 1 Antwort

Excel Blattschutz gleichzeitig für 53 Tabellenblätter einrichten
gybsyblau  31.01.2007 - 396 Hits - 9 Antworten

Zuordnen von Zahlen zu Strings und Addition dieser
Brabl  17.07.2007 - 40 Hits - 5 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026