利用Excel VBA实现源数据自动导入及数据刷新
1、新建启用宏的工作薄,另存为“示例1“,插入模块1

2、双击模块1,将以下代码粘贴到代码窗口内
Sub 示例1()
Application.ScreenUpdating = False '取消屏幕更新
Application.DisplayAlerts = False '取消错误警告
'设置当前用户桌面路径
Dim desktop_path As String
desktop_path = Environ("userprofile") & "\Desktop"
'导入发运明细,并刷新Sheet1中数据
'第一步:清空Sheet2表中所有单元格数据
Workbooks("示例1.xlsm").Worksheets("Sheet2").Activate
Cells.Select
Selection.Clear
'第二步:将导出数据保存到桌面,命名为“源”,打开后复制所有单元格,此处需注意excel工作薄保存的后缀名,如果为”.xlsx“,需相应地更改为”.xlsx“
Workbooks.Open (desktop_path & "\" & "源.XLS") '此处使用设置好的桌面路径“desktop_path”,打开名称为“源”的文件
Cells.Select
Selection.Copy
'第三步:将复制内容粘贴到Sheet2中,并关闭“源”工作薄
Workbooks("示例1.xlsm").Activate
Worksheets("Sheet2").Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Workbooks("源.XLS").Close
'第四步:刷新透视表
Dim sht As Worksheet, i
For Each sht In Worksheets
If sht.PivotTables.Count > 0 Then
For i = 1 To sht.PivotTables.Count
sht.PivotTables(i).PivotCache.Refresh
Next
End If
Next
MsgBox ("已更新完成!")
Workbooks("示例1.xlsm").Worksheets("Sheet1").Activate
End Sub

3、点击”调试“菜单,选择”逐语句(快捷键F8)“,调试成功后关闭代码编辑窗口即可

4、插入表单控件的按钮功能,方便直观地调用宏代码

5、选择名称为”示例1“的宏

6、点击按钮后宏运行成功
