【发布时间】:2015-05-03 12:11:25
【问题描述】:
我有一个包含大约 400 个 CSV 格式文件的列表,我想将它们转换为 XLSX 格式。我还想在转换时在左侧添加一个新列,并且只想将文件名的前 8 个字符添加到新添加的列中。假设文件名为“TZ125250 April 26 2015.csv”,则应将TZ125250 添加到第一列,直到电子表格中存在数据的最后一行,并应保存为“TZ125250 April 26 2015.xlsx”,大多数 CSV 文件的数据大约为 200000 行。我使用的代码是
Sub CSVtoXls()
Dim CSVfolder As String
Dim XlsFolder As String
Dim fname As String
Dim wBook As Workbook
CSVfolder = "C:\csvfolder\"
XlsFolder = "C:\xlsFolder\"
fname = Dir(CSVfolder & "*.csv")
Do While fname <> ""
Set wBook = Workbooks.Open(CSVfolder & fname, Format:=6, Delimiter:=",")
Cells.Select
Cells.EntireColumn.AutoFit
Columns("A:A").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
wBook.SaveAs XlsFolder & Replace(fname, ".csv", ""), ThisWorkbook.FileFormat
wBook.Close False
fname = Dir
Loop
End Sub
如果我删除此部分,此代码会将 CSV 转换为 XLSX
Cells.Select
Cells.EntireColumn.AutoFit
Columns("A:A").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
【问题讨论】: