Ich will eine dat-Datei in Excel bearbeiten und den Inhalt dann als txt-Datei speichern.
Dabei muß ich sie nach der Bearbeitung zunächst als prn-Datei speichern (leerzeichengetrennt)
und dann zu einer txt-Datei machen.
Speichere ich sie gleich als txt-Datei, wird sie von einem Gerät nicht korrekt gelesen.
Problem:
Das programmgesteuerte Speichern als prn-Datei setzt jede Textzeile leider in Anführungsstriche
(das passiert beim manuellen Speichern ohne Makro nicht).
Das macht die Datei natürlich für das besagte Gerät unbrauchbar.
Die Textzeilen werden bei meiner Bearbeitung in Excel übrigens als 1 Spaltenwert
betrachtet (es wird im wesentlichen nur zeilenweise sortiert).
Frage:
Wie verhindere ich beim Speichern als prn-Datei die Anführungszeichen?
Hier ein paar Code-Auszüge:
Option Explicit
Sub Makro_Sort()
(...)
' Datei öffnen, es ist eine dat-Datei
fileFilter = "Daten-Dateien (*.dat), *.dat, Text-Dateien (*.txt), *.txt"
pfad = Application.GetOpenFilename(fileFilter)
Workbooks.OpenText Filename:=pfad, DataType:=xlDelimited, semicolon:=True
(...)
' Zum Speichern der Text-Datei den in N1 befindlichen Dateinamen benutzen
Dim sFileName As String
sFileName = Range("N1").Value ' z.B. "meinedatei"
(...)
' Speicher-Pfad fest vorgeben
Dim sPathOnly, sPath As String
sPathOnly = "D:\meinpfad\"
sPath = sPathOnly & sFileName ' Enthält noch keine Datei-Endung
Dim fileSaveName As Variant
fileSaveName = Application.GetSaveAsFilename( _
InitialFileName:=sPath, _
fileFilter:="Formatierter Text (leerzeichengetrennt) (*.prn), *.prn")
' fileSaveName ist jetzt z.B. "D:\meinpfad\meinedatei.prn"
If fileSaveName False Then
ActiveWorkbook.SaveAs fileSaveName
' prn-Datei hat jetzt leider Anführungszeichen
am Anfang und Ende jeder Zeile :o(
' Geöffnete prn-Datei (das Excel-Blatt) schließen
ActiveWorkbook.Close SaveChanges:=False
' prn-Datei in txt-Datei umbenennen
Dim newName As String
newName = Mid(fileSaveName, 1, Len(fileSaveName) - 3) & "txt"
' Vorhandene Datei mit demselben Namen löschen,
sonst Umbenennen nicht möglich
Kill newName ' Fehlermeldung, wenn Datei nicht existiert
Name fileSaveName As newName ' Fehlermeldung, wenn Datei
schon existiert; deswegen vorher kill
Else
MsgBox "Vorgang wurde ohne Datei-Erstellung abgebrochen."
End If
End Sub
Über Hilfe/Anregungen würde ich mich sehr freuen. Danke im voraus.
Oli