Excel-VBA Konvertieren .csv zu Excel-Datei
Habe ich einen Ordner hat .csv-Dateien .xls-Dateien sowie xlsx-Dateien. Der code unten ist ein Teil eines gesamten Projekt (wenn ich entfernen Sie den code unten, den restlichen code erreicht, was ich will). Ein großer Teil des Codes wurde zusammengestellt von irgendwo (hier und rund um das internet). Was ich will, der code dazu ist open nur den .csv-Dateien in den Ordner, und konvertieren Sie Sie in eine Excel-Datei, schließen Sie die Dateien, und löschen Sie dann die .csv-Dateien in den Ordner. Was am Ende passiert mit dem code ist, dass eine oder beide der Dateien erstellt, durch die code aus dem Ordner gelöscht, und ich bin mit nichts mehr übrig. Vielen Dank im Voraus für jede Hilfe.
Sub Test()
'
' Test Macro
'
'Set variables for the below loop
Dim MyFolder As String
Dim MyFile As String
Dim GetBook As String
Dim GetBook2 As String
Dim MyCSVFile As String
Dim KillFile As String
MyFolder = "REDACTED"
MyFile = Dir(MyFolder & "\*.xls")
MyCSVFile = Dir(MyFolder & "\*.csv")
'Open all of the .csv files in the folder and convert to .xls
Do While MyCSVFile <> ""
Workbooks.Open Filename:=MyFolder & "\" & MyCSVFile
GetBook = ActiveWorkbook.Name
GetBook2 = Left(GetBook, Len(GetBook) - 4)
ActiveSheet.Name = "Sheet1"
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=GetBook2, FileFormat:=56
ActiveWorkbook.Close False
Kill MyFolder & "\" & GetBook
Loop
End Sub
- Warum sparen Sie als xlExcel8 (z.B. FileFormat:=56)? Gibt es eine Beschränkung gegen eine .XLSX (z.B. xlOpenXMLWorkbook oder FileFormat:=51)?
- Ich kann mich irren, aber würden Sie nicht wollen {...Filename: = myfolder & "\" & GetBook2 & ".xls" ...}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie nicht aufrufen Dir-Funktion, um die nächste Datei.
Nur Arbeitsblatt in einem geöffneten CSV ist für den Namen der CSV-Datei (ohne die .Erweiterung CSV), so dass verwendet werden kann, in der Arbeitsmappe.SaveAs-Methode. Ich habe xlOpenXMLWorkbook als die SaveAs FileFormat geben.
MyFolder = "REDACTED"
ist nicht der komplette Pfad, um mit zu beginnen. Es ist relativ zum aktuellen Verzeichnis (das nicht unbedingt das Verzeichnis der aktiven Arbeitsmappe). Ist es beabsichtigt, ein Unterordner des aktiven Arbeitsmappe ist Weg?Environ("TEMP") & Chr(92) & "REDACTED"
zuL:\Folder\Sub-Folder\Sub-Folder
. Getestet wurde dies und führt, wie erwartet, auf einen Unterordner von meinen %TEMP% Ordner.