我使用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"。
答案 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