我正在使用Application.Path&创建一个SQL文件。 SQL_statements.A之后我通过vba.Iow将SQL语句编写到这个文件中。我想在另一个目录中生成所有SQL语句后保存文件。这个目录取决于user.Hence我想给他一个Save as Dialog。
因此,我需要保存通过vba创建的文件,并在用户指定的位置使用另存为对话框保存,并删除由我创建的文件副本。
答案 0 :(得分:3)
我认为你想要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将是一个完整路径和名称的字符串。我不知道“SQL文件”是什么,所以我猜这是一个带有sql扩展名的文件。如果用户在对话框中单击“取消”,则sFile将为“False”。
在创建文件后复制文件
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,另一个在用户选择的文件中。