首页 > 解决方案 > 使用用户表单将工作表导出为单独的文件并浏览文件路径

问题描述

我知道以前也有人问过将工作表导出为单独的文件。我检查了这些答案,但找不到解决问题的方法,因此提出了新问题。

代码 :

Private Sub cancel_button_Click()
Unload Me
End Sub

Private Sub export_button_Click()
Dim FileExtStr As String
Dim FileFormatNum As Long
Dim xWs As Worksheet
Dim xWb As Workbook
Dim FolderName As String
Application.ScreenUpdating = False
Set xWb = Application.ThisWorkbook
DateString = Format(Now, "yyyy-mm-dd hh-mm-ss")
FolderName = xWb.Path & "\" & xWb.Name & " " & DateString
MkDir FolderName

For Each xWs In xWb.Worksheets
    xWs.Copy
        If xlsx = True Then
            FileExtStr = ".xlsx": FileFormatNum = 51
            Unload Me
        ElseIf xlsm = True Then
                FileExtStr = ".xlsm": FileFormatNum = 52
                Unload Me
        ElseIf xls = True Then
            FileExtStr = ".xls": FileFormatNum = 56
            Unload Me
        ElseIf xlsb = True Then
            FileExtStr = ".xlsb": FileFormatNum = 50
            Unload Me
        End If
    xFile = FolderName & "\" & Application.ActiveWorkbook.Sheets(1).Name & FileExtStr
    Application.ActiveWorkbook.SaveAs xFile, FileFormat:=FileFormatNum
    Application.ActiveWorkbook.Close False
Next

MsgBox "You can find the files in " & FolderName
Application.ScreenUpdating = True
End Sub

用户表单:
在此处输入图像描述

使用上面的代码和用户表单,我可以完美地工作。我不知道 and 的 FileFormatNum csvtxt因此我无法为这两个文件格式创建 if 循环。

我需要你的帮助。我需要在用户窗体中创建一个组合框,指定大约 15 种文件格式。此外,还有一个文件浏览按钮来选择导出文件夹。用户同时进行选择(文件格式和导出文件夹的位置)。
我创建了用户表单:
在此处输入图像描述

  1. 单击浏览按钮时,应打开一个选择文件夹对话框,用户从中选择一个文件夹以导出工作表。文件夹的路径应显示在浏览按钮旁边的文本框中。
  2. 组合框将显示 15 种文件格式。从列表中选择任何一个时,将使用该文件扩展名导出工作表。

我该怎么做?我做不到。请任何人。只要给我一个推动,我会完成它。

标签: vbaexcel

解决方案


用于 csv 和 txt 的 FileFormatNum 在这里。

  • CSV : 20
  • txt (Unicode) : 42

https://msdn.microsoft.com/en-us/VBA/Excel-VBA/articles/xlfileformat-enumeration-excel

要轻松查找 xlfileformat,只需转到 VB 窗口中的对象浏览器(按 F2),然后在“搜索文本”框中键入 xlFileFormat。


推荐阅读