利用Excel VBA实现源数据自动导入及数据刷新

2025-10-27 14:33:13

1、新建启用宏的工作薄,另存为“示例1“,插入模块1

利用Excel VBA实现源数据自动导入及数据刷新

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

利用Excel VBA实现源数据自动导入及数据刷新

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

利用Excel VBA实现源数据自动导入及数据刷新

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

利用Excel VBA实现源数据自动导入及数据刷新

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

利用Excel VBA实现源数据自动导入及数据刷新

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

利用Excel VBA实现源数据自动导入及数据刷新

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢