Excel VBA:将数据/文件保存为不带宏的其他格式

时间:2017-11-23 09:58:04

标签: excel vba excel-vba

我有这个用户形式

User form

它是完全功能但我想添加一个功能,将文件发送为.xlsx或.txt,以便我可以从文件中删除宏。

我在互联网上搜索了几天,然后提出了一个程序,我需要制作一个程序来将其保存为另一种格式。我提出的流程如下:

1. .SaveCopyAs

  

复制(文件名)。(格式相同)

  1. .Open

      

    现有档案

  2. .SaveAs

      

    (FileName)。(任何格式)

  3. 并删除SaveCopyAs文件以避免冗余或捕获临时文件以另存为另一种文件格式?单击“确定”按钮后,应保存每个输入并覆盖现有文件。

    有人可以告诉我,我是否正确地解决了我的问题?感谢。

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题,我的解决方案是将Sheets复制到新的工作簿中,然后相应地重命名它们并保存具有特定名称的工作簿:

ans = MsgBox("Would you like to export the Report?", vbYesNo)
    Select Case ans
    Case vbYes
        FPath = "C:\...\...\... Daily Report"
        FName = "Report" & ".xlsx"

        Set NewBook = Workbooks.Add

        ThisWorkbook.Sheets("Sheet2").Copy Before:=NewBook.Sheets(1)
        ThisWorkbook.Sheets("Sheet3").Copy Before:=NewBook.Sheets(1)
        Application.DisplayAlerts = False
        'NewBook.Sheets("Sheet1").Delete to delete the first empty sheet on the new workbook

        If Dir(FPath & "\" & FName) <> "" Then
            MsgBox "File " & FPath & "\" & FName & " already exists"
        Else
            NewBook.SaveAs Filename:=FPath & "\" & FName
        End If

        NewBook.Close False
        CurrentReport = FPath & "\" & FName
    Case vbNo
        Exit Sub
    End Select

或者,每次用户点击&#34时,都要将数据附加到文本文件中;确定&#34;:

Sub VBA_to_append_existing_text_file()
Dim strFile_Path As String
strFile_Path = "C:\temp\test.txt" ‘Change as per your test folder and exiting file path to append it.
Open strFile_Path For Append As #1
Write #1, "This is my sample text" ' add entered data here
Close #1
End Sub