我在将文件转换为其他格式时遇到问题。我有几百个.csv格式的文件,需要转换它们。我发现一个正在工作的sub(),但如果我首先打开文件然后手动保存,则格式看起来会有所不同。它来自哪里?将.csv保存为.xlsx
下面是宏我不打开文件使用:
Sub csv_to_xlsx()
Dim CSVfolder As String, _
XlsFolder As String, _
fname As String, _
wBook As Workbook
CSVfolder = "C:\Users\ja\Desktop\CSV\"
XlsFolder = "C:\Users\ja\Desktop\XLSX\"
fname = Dir(CSVfolder & "*.csv")
Do While fname <> ""
Set wBook = Workbooks.Open(CSVfolder & fname, Format:=6, Delimiter:=",")
wBook.SaveAs XlsFolder & Replace(fname, ".csv", ""), xlOpenXMLWorkbook
wBook.Close False
fname = Dir
Loop
End Sub
和宏观与打开文件:
Sub open_csv_save_xlsx()
Dim sciezka As String, fileName As String, sheet As Worksheet, i As Integer, j As Integer
Application.ScreenUpdating = False
sciezka = ActiveWorkbook.Path & "\"
fileName = Dir(sciezka & "*.csv")
Do While fileName <> ""
i = i + 1
j = 2
Cells(i, 1) = fileName
fileName = Dir()
Loop
Application.ScreenUpdating = True
Dim a As Integer, b As Integer, arkusz As String, XlsFolder As String, wBook As Workbook
XlsFolder = "C:\Users\ja\Desktop\XLSX\"
a = WorksheetFunction.CountA(Range("A:A"))
b = 1
For i = 1 To a - 1
arkusz = Range("A" & b).value
Range("C" & b).value = b
b = b + 1
Workbooks.Open (sciezka & arkusz)
Set wBook = ActiveWorkbook
wBook.SaveAs XlsFolder & Replace(sciezka & arkusz, ".csv", ""), xlOpenXMLWorkbook
ActiveWorkbook.Close True
Next i
End Sub
第一部分是使工作表的文件列表,并在线路wBook.SaveAs XlsFolder & Replace(sciezka & arkusz, ".csv", ""), xlOpenXMLWorkbook
粉碎和我不知道原因。发生错误1004。
任何人有任何其他方式来转换这个文件?为什么格式不同呢?
这两个代码块都会打开工作簿,而第一个代码块不会生成文件列表。首先尝试单步执行代码,以了解其实际执行的内容。 –
@MacroMan是的,你是对的,有功能。打开第一个宏。我不理解的是手动保存和使用SUB()之间的区别。你有什么想法吗? – RafMil