【问题标题】:how to use excel vba to Opening a .csv and saving it as .xlsx如何使用 excel vba 打开 .csv 并将其保存为 .xlsx
【发布时间】:2014-03-22 14:02:32
【问题描述】:

我正在使用 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”。

【问题讨论】:

    标签: vba ms-access-2007


    【解决方案1】:

    试试这个:

    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
    

    【讨论】:

    • ActiveWorkbook.SaveAs Filename:=Left(myfile.Value, InStrRev(myfile.Value, ".") - 1), FileFormat:=51
    • 我在这里激活变量 myfile 并且只需要选择 csv 文件的名称并保存为 ActiveWorkbook.SaveAs Filename:=Left(myfile.Value, InStrRev(myfile.Value, ".") - 1)、文件格式:=51
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-09
    • 1970-01-01
    • 2018-06-02
    • 2015-12-13
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    相关资源
    最近更新 更多