如何在Excel中使用保存对话框保存SQL文件

我正在使用Application.Path&SQL_statements创build一个SQL文件。之后,我通过vba将SQL语句写入这个文件。现在,我想在所有SQL语句生成在不同的目录中之后保存文件。此目录取决于用户所以我想给他一个另存为对话框。

因此,我需要保存通过vba创build的文件,并使用另存为对话框将其保存为用户指定的位置,并删除由我创build的文件的副本。

我想你想要Application.GetSaveAsFilename。 这是一个例子。

Sub Test() Dim sFile As String Dim lFile As Long Dim sSql As String sFile = Application.GetSaveAsFilename(, "*.txt,*.txt", , "Save SQL File") If sFile <> "False" Then sSql = "Select * from abc" lFile = FreeFile Open sFile For Append As lFile Print #lFile, sSql Close lFile End If End Sub 

sFile将是一个string,是完整的path和名称。 我不知道什么是“SQL文件”,所以我猜想这是一个带有sql扩展名的文件。 如果用户在对话框上单击取消,sFile将会是“False”。

创build后复制文件

 Sub TestCopy() Dim sNewFile As String, sOldFile As String Dim lFile As Long Dim sSql As String sNewFile = Application.GetSaveAsFilename(, "*.txt,*.txt", , "Save SQL File") If sNewFile <> "False" Then sSql = "Select * from abc" sOldFile = "C:\Book1.txt" lFile = FreeFile Open sOldFile For Append As lFile Print #lFile, sSql Close lFile FileCopy sOldFile, sNewFile End If End Sub 

你将得到两个文件 – 一个在C:\ Book1.txt和一个用户select的地方。