员工管理 导出

1 功能描述

[导出]按钮将查询结果导出到新的Excel文件,默认文件名是当前日期与时间,如下图所示。

img


2 主要步骤

步骤1:打开文件对话框,设置默认文件名为当前日期与时间

步骤2:获取保存的文件名,进行保存


3 代码实现

Sub export1()
    '声明变量
    Dim fileDialog1 As FileDialog       '文件对话框对象
    Dim currentRegion1 As Range         '待复制的区域
    Dim workbookNew As Workbook         '新建的工作簿对象
    Dim fileName As String              '保存的文件名
    

    '步骤1:打开文件对话框,设置默认文件名为当前日期与时间
    '创建文件框对象,参数msoFileDialogSaveAs表示另存为文件框
    Set fileDialog1 = Application.FileDialog(msoFileDialogSaveAs)

    '设置默认文件名
    fileName = Format(Now, "yyyy-mm-dd_hhmmss")
    fileDialog1.InitialFileName = fileName
    
    '打开对话框
    fileDialog1.Show
    
    '获取选中
    If fileDialog1.SelectedItems.Count = 0 Then
        Debug.Print "未选中"
        Exit Sub
    End If
    
    '步骤2:获取保存的文件名,进行保存
    '获取设置文件名
    fileName = fileDialog1.SelectedItems.Item(1)
    Debug.Print "选中文件:" & fileName
    
    '获取待复制区域
    Set currentRegion1 = Worksheets("B01员工管理").Range("B22").CurrentRegion
    '添加工作簿
    Set workbookNew = Workbooks.Add
    '复制查询结果区域
    currentRegion1.Copy Destination:=workbookNew.Worksheets("Sheet1").Range("A1:F5")
    '保存文件
    workbookNew.SaveAs fileName
    '关闭工作簿
    workbookNew.Close

End Sub

4 代码讲解

Application.FileDialog(msoFileDialogSaveAs)表示打开另存为对话框,此对话框本人本地测试无法设置扩展名列表,采用自动。

fileName = Format(Now, "yyyy-mm-dd_hhmmss"),其中Now返回当前日期时间,Format格式化相应字符串。

fileDialog1.SelectedItems.Count 判断用户是否选中文件,如果用户点击取消按钮,则返回0。

Workbooks.Add会新建工作簿文件,会自动新建Sheet1工作表。

currentRegion1.Copy用于单元格的复制,会复制单元格的格式与值。前面经常使用的Range.Value仅复制值。


5 测试用例

正常用例:点击导出,文件对话框点击[保存]按钮,选择路径与文件名,正常保存。

异常用例:点击导出,文件对话框点击[取消]按钮,不会进行保存。