Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Länge eines Strings





Frage

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 1 von riese

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

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

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


Ausgabe: 001234

Antwort 3 von nighty

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

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

Antwort 5 von Saarbauer

Hallo,

hiermit wären die führenden nullen mit eingebunden

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

Gruß

Helmut

Antwort 6 von rainberg

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

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

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

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

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

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

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: