如何在excel中使用“保存”对话框保存SQL文件

如何在excel中使用“保存”对话框保存SQL文件,excel,vba,Excel,Vba,我正在使用Application.Path&SQL_语句创建一个SQL文件。之后,我通过vba将SQL语句写入该文件。现在,我想在其他目录中生成所有SQL语句后保存该文件。该目录取决于用户。因此,我想给他一个“另存为”对话框 因此,我需要保存通过vba创建的文件,并使用“另存为”对话框将其保存在用户指定的位置,并删除我创建的文件副本。我想您需要Application.GetSaveAsFilename。这里有一个例子 Sub Test() Dim sFile As String

我正在使用Application.Path&SQL_语句创建一个SQL文件。之后,我通过vba将SQL语句写入该文件。现在,我想在其他目录中生成所有SQL语句后保存该文件。该目录取决于用户。因此,我想给他一个“另存为”对话框


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

我想您需要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,另一个在用户选择的地方。

如何保存我的文件。我是vba的新手。我不知道其中很多东西,可能是普通的。它是什么类型的文件?Excel文件?文本文件?您是如何创建它的?它是文本文件。我是这样创建的。Dim filename As Variant filename=Application.Path&\&Book1.txt Dim sql As String Dim My\u filenumber As Integer sql=Select*from abc My\u filenumber=FreeFile Open filename For Append As My\u filenumber Print My\u filenumber,sql Close My_filenumberafter在此对话框中,我想通过对话框保存此文件