Excel VBA entfernt führende Nullen beim Export zu CSV
Hallo Ihr da draußen,
ich habe folgendes Problem, mein VPA entfernt führende Nullen der einzelnen Zellen. Ich habe diese in Excel per Sonderformatierung aufgefüllt.
Wie kann ich das unterbinden? Hat jemand eine Lösung?
ich habe folgendes Problem, mein VPA entfernt führende Nullen der einzelnen Zellen. Ich habe diese in Excel per Sonderformatierung aufgefüllt.
Wie kann ich das unterbinden? Hat jemand eine Lösung?
Sub Stammdaten_Aktuell_Export()
Dim varSpalten
Dim intSpalte As Integer, lngZeile As Long
Dim objQuellblatt As Worksheet
Dim objZielblatt As Worksheet
Dim strPfad As String
Dim varTmp, strOut As String
Open "c:\test\Stammdaten_Aktuell.csv" For Output As #1 'Datenquelle festlegen
Set objQuellblatt = ThisWorkbook.Sheets("Stammdaten_Aktuell") 'Dateiname festlegen
varSpalten = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
varTmp = objQuellblatt.UsedRange
For lngZeile = 1 To UBound(varTmp)
strOut = ""
If Len(varTmp(lngZeile, varSpalten(0))) > 0 Then
For intSpalte = 0 To UBound(varSpalten)
strOut = strOut & ";" & varTmp(lngZeile, varSpalten(intSpalte))
Next intSpalte
strOut = Mid(strOut, 2)
Print #1, strOut
End If
Next lngZeile
Close #1
End Sub
Please also mark the comments that contributed to the solution of the article
Kommentar vom Moderator colinardo am Apr 13, 2021 um 09:14:53 Uhr
Titel korrigiert
Content-Key: 665159
Url: https://administrator.de/contentid/665159
Printed on: April 19, 2024 at 13:04 o'clock
1 Comment
Naja,
du hast die Zelle in Excel so formatiert, dass führende Nullen optisch erzeugt werden, die "Daten" selbst sind weiterhin "normale" Zahlen ohne führende Null.
Und genau das liest du aus und speicherst es ab.
Du müsstest also im Script diese führenden Nullen erst wieder hinzufügen.
EDIT:
z.B. so:
Text = format(Zahl,"00000#")
mit Zahl als Excelfeld
und Text als Variable, die du ins CSV schreiben willst.
Mit der Formatierung "00000#" erzeugst du dann z.B. 000123.
du hast die Zelle in Excel so formatiert, dass führende Nullen optisch erzeugt werden, die "Daten" selbst sind weiterhin "normale" Zahlen ohne führende Null.
Und genau das liest du aus und speicherst es ab.
Du müsstest also im Script diese führenden Nullen erst wieder hinzufügen.
EDIT:
z.B. so:
Text = format(Zahl,"00000#")
mit Zahl als Excelfeld
und Text als Variable, die du ins CSV schreiben willst.
Mit der Formatierung "00000#" erzeugst du dann z.B. 000123.