如何使用excel vba打开.csv并将其保存为.xlsx

时间:2014-03-22 14:02:32

标签: vba ms-access-2007

我使用MS Access表单使用选择文件打开.csv文件。

Private Sub Import_Click()
Dim ExcelApp
Set ExcelApp = CreateObject("Excel.Application")
ExcelApp.Workbooks.Open (Me.txtCSVFIle.Value)

ExcelApp.DisplayAlerts = False
ExcelApp.ActiveWorkbook.SaveAs FileName:=Me.txtCSVFIle.Value, FileFormat:=51
ExcelApp.Visible = False

ExcelApp.ActiveWorkbook.close False
ExcelApp.Quit
End Sub

Me.txtCSVFIle.Value的值为" I:\ csv files \ 20140228_ExtStats.csv"

现在问题是我的另存为命令将其保存为.csv的名称。如何删除.csv以便我的下一个语句FileFormat:= 51使它保存为.xlsx?

* Ps:将Displayalerts设置为false以防止用户混淆。

预期结果应保存为" I:\ csv files \ 20140228_ExtStats.xlsx"。

1 个答案:

答案 0 :(得分:2)

试试这个:

Private Sub Import_Click()
    Dim ExcelApp As Object
    Set ExcelApp = CreateObject("Excel.Application")
    With ExcelApp
        .Workbooks.Open (Me.txtCSVFIle.Value)            
        .DisplayAlerts = False
        .ActiveWorkbook.SaveAs Filename:=Left(Me.txtCSVFIle.Value, InStrRev(Me.txtCSVFIle.Value, ".") - 1), FileFormat:=51
        .Visible = False            
        .ActiveWorkbook.Close False
        .Quit
    End With
    Set ExcelApp = Nothing
End Sub