excel - 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 的经验很少。