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?? Zitieren
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... Zitieren
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)? Zitieren
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... Zitieren
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 ???? Zitieren
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... Zitieren
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??? Zitieren
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 Zitieren
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??? Zitieren
fireworker Geschrieben 4. Februar 2004 Geschrieben 4. Februar 2004 mit CINT("String") oder CLNG("String") Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.