Darkjedi Geschrieben 2. Februar 2004 Geschrieben 2. Februar 2004 Hallo, ich möchte mit dem VB-Editor unter Excel etwas schreiben, daß mir bestimmte Datensätze dupliziert. Beispiel: Zelle A2: 00004683 Zelle A3: 00005555 Jetzt sollen nur(!) bei den Datensätzen die auf 5555 enden die 4 vorangehenden Nullen abgeschnitten werden. Frage: Wie kann ich diese 4 Nullen abschneiden??
Peregrin Geschrieben 2. Februar 2004 Geschrieben 2. Februar 2004 hi, ich hoffe, dich nicht falsch verstanden zu haben? du möchtest führende nullen entfernen: Private Const MY_CHANGE_VALUE = 5555 ' oder welcher wert auch sonst al kriterium dienen mag Public Function doChange(ByVal s As String) Dim ret As String Dim ltest As Long ret = s On Error Resume Next ltest = CLng(s) 'in einen long umwandeln, löscht die führenden nullen If (Err.Number = 0) And (ltest = MY_CHANGE_VALUE) Then ret = CStr(ltest) 'dies liefert den long-wert wieder als string End If Call Err.Clear On Error GoTo 0 doChange = ret End Function sollte das ergebnis liefern. hth...
Darkjedi Geschrieben 2. Februar 2004 Autor Geschrieben 2. Februar 2004 Vielen Dank Die Konvertierung in einen Long Wert schneidet also doe führenden Nullen ab, was aber wenn ich andere Zeichen abschneiden will (Zahlen, oder auch Leerzeichen)?
Peregrin Geschrieben 2. Februar 2004 Geschrieben 2. Februar 2004 hi, dann ist es einfacher: du musst ja nur die letzten vier zeichen vergleichen. dazu kannst du Right(dein_string, 4) benutzen. wenn dieser ausdruck dann "5555" liefert, gibst du einfach "5555" (oder sonstwas) zurück. hth...
Darkjedi Geschrieben 3. Februar 2004 Autor Geschrieben 3. Februar 2004 Noch eine Frage: Gibt es in VB die Möglichkeit Platzhalter zu nutzen? Konkret: Ich habe eine Zeichenkette 4342163 6732 736246 8888888888 875834 Wäre solch eine Bedingung so (oder ähnlich) möglich: IF Zeichenkette = *8888888888* THEN ... END IF ????
Peregrin Geschrieben 3. Februar 2004 Geschrieben 3. Februar 2004 hi, instr(start, string1, string2) liefert dir die position von string2 innerhalb von string1. dazu am besten die msdn befragen...
Darkjedi Geschrieben 3. Februar 2004 Autor Geschrieben 3. Februar 2004 For Zaehler2 = 1 To 347 Zeichenkette = Worksheets(2).Range("A" & Zaehler2).Value Zeichenkette = Left(Zeichenkette, 32) Zeichenkette = Right(Zeichenkette, 5) Worksheets(2).Range("B" & Zaehler2).Value) = Zeichenkette Next Zaehler 2 Wichtig! Dieser Code gibt mir die gewünschte Zeichenkette aus in der 2. Tabelle einer EXcelmappe. Allerdings gibt er vorausgehende Nullen nicht aus, d.h. wenn die Zeichenkette die bspw. in B2 geschrieben werden soll 005678 ist, gibt mir EXcel nur 5678 aus in B2. Funktionieren tut es nur (mit Ausgabe der Nullen), wenn ich das Format der Zellen vor dem Ausführen auf "Text" setze. Wie kann ich das besser umsetzen???
Peregrin Geschrieben 3. Februar 2004 Geschrieben 3. Februar 2004 vor den numerischen value einer zelle ein einfaches hochkomma einfügenworksheet.Range("A1").Value = "'" & dein_stringerledigt das gleiche
Darkjedi Geschrieben 3. Februar 2004 Autor Geschrieben 3. Februar 2004 Letztes Problem habe ich gelöst. Aber weiteres Problem: For Zaehler = 1 To 347 Zeichenkette = Worksheets(2).Range("A" & Zaehler).Value Zeichenkette = Left(Zeichenkette, 32) Zeichenkette = Right(Zeichenkette, 5) Worksheets(2).Range("B" & Zaehler).Value = Zeichenkette Selection.NumberFormat = "@" Worksheets(2).Range("B" & Zaehler).Value = Zeichenkette Divident = Zeichenkette Quotient = Divident / 2 <--------------------------Fehlermeldung Worksheets(2).Range("C" & Zaehler).Value = Quotient Next Zaehler Die Zeichenkette (bspw. 6556) die in Spalte B steht soll halbiert werden und in Spalte C geschrieben werden. Allerdings wird beim Ausführen an markierter Stelle eine Fehlermeldung ausgegeben, und zwar: Laufzeitfehler 13: Typen unverträglich. Ich denke es liegt daran, das "Zeichenkette" ein String ist und, dividiert durch 2 als String ausgegeben werden soll. Wie kann ich einen String in einen Integer-Wert konvertieren???
fireworker Geschrieben 4. Februar 2004 Geschrieben 4. Februar 2004 mit CINT("String") oder CLNG("String")
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden