首页 > 解决方案 > Excel VBA 以最少的中断将 .xlsx 文件更改为 .csv 文件

问题描述

在 Excel VBA 中,我试图获取活动工作簿并将其保存为不同的文件类型,在本例中为 .csv。

例如,我想将 test.xlsx 保存为 test.csv 并使用当前工作簿名称,而不触发除“另存为”对话框之外的任何提示。

这是我到目前为止所拥有的:

Sub SaveAsCSV()
    Dim vFileName As Variant
    Dim strInitFName As String
       
     'Strip extension from current filename:
    strInitFName = ActiveWorkbook.Name
    If InStrRev(ActiveWorkbook.Name, ".") > 0 Then
        strInitFName = Left(strInitFName, InStrRev(strInitFName, ".") - 1)
    End If
   
     'Show SaveAs dialog:
    vFileName = Application.GetSaveAsFilename( _
        InitialFileName:=ActiveWorkbook.Name, _
        FileFilter:="CSV (Comma delimited) (*.csv), *.csv")
   
     'Save the file as CSV:
    If vFileName <> False Then ActiveWorkbook.SaveAs vFileName, xlCSV
End Sub

一切正常,除了打开“另存为”对话框时,文件名部分没有任何内容。

我需要做什么才能在“另存为”对话框中获取工作簿名称?

研究包括:几个小时尝试和失败的解决方案,以及弄清楚为什么我所拥有的东西会以它的方式工作,因为我对 VBA 的经验很少。

当前代码来源:https ://answers.microsoft.com/en-us/msoffice/forum/all/disable-warning-when-saving-csv/7e35690b-d828-4487-9945-69b1d6d4be9f

标签: excelvbaexcel-2016

解决方案


推荐阅读