员工管理 导出
1 功能描述
[导出]按钮将查询结果导出到新的Excel文件,默认文件名是当前日期与时间,如下图所示。
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 测试用例
正常用例:点击导出,文件对话框点击[保存]按钮,选择路径与文件名,正常保存。
异常用例:点击导出,文件对话框点击[取消]按钮,不会进行保存。