使用用户窗体将工作表导出为单独的文件,并浏览文件路径

时间:2018-06-21 11:07:57

标签: excel vba excel-vba

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

代码:

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

用户窗体:
enter image description here

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

我需要你的帮助。我需要在userform中创建一个组合框,指定大约15种文件格式。还有一个文件浏览按钮,用于选择导出文件夹。用户同时进行选择(文件格式和要导出的文件夹的位置)。
我已经创建了用户表单:
enter image description here

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

我该怎么办?我做不到。请任何人。只需推一下我,我就结束了。

1 个答案:

答案 0 :(得分:1)

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。