将csv转换为xslx并使用宏添加列

时间:2015-04-30 20:14:05

标签: excel vba excel-vba

我有一个包含CSV格式的大约400个文件的列表我想将它们转换为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

1 个答案:

答案 0 :(得分:0)

ThisWorkbook.FileFormat更改为xlWorkbookDefault