2010-09-07 113 views
2

我正在使用Application.Path创建SQL文件& SQL_statements.After我通过vba.Now将SQL语句写入此文件我想保存所有SQL后的文件语句生成在不同的目录中。该目录取决于用户。因此,我想给他一个另存为对话框。因此,我需要保存通过vba创建的文件,并使用另存为对话框将其保存为用户指定的位置,并删除由我创建的文件的副本。如何在Excel中使用保存对话框保存SQL文件

回答

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和一个在用户选择。

+0

如何保存我的文件。我是vba的新手。不知道很多东西可能是普通的 – gizgok 2010-09-07 18:44:09

+0

它是什么类型的文件? Excel文件?文本文件?你是如何创建它的? – 2010-09-07 19:00:11

+0

这是textfile,我是这样创建的。 – gizgok 2010-09-07 19:13:46