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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Kommentar vom Moderator colinardo am 13.04.2021 um 11:14:53 Uhr
Titel korrigiert
Content-ID: 665159
Url: https://administrator.de/contentid/665159
Ausgedruckt am: 16.11.2024 um 03:11 Uhr
1 Kommentar
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.