Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1188|回复: 0

如何同步更新两个或多个工作薄的内容

[复制链接]
发表于 2012-3-14 16:19 | 显示全部楼层 |阅读模式
首先在工作薄Book1中,右键点击Sheet1,在弹出的快捷菜单中选择“查看代码”,之后,会弹出编写代码的VBA窗口。 一、代码内容
在VBA代码窗口中,直接输入如下的代码即可:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Workbooks.Open filename:=ThisWorkbook.path & "\book2.xls"
Workbooks("Book1.xls").Windows("Book1.xls").Activate
Workbooks("Book1.xls").Worksheets("Sheet1").Cells.Select
Selection.Copy
Workbooks("Book2.xls").Windows("Book2.xls").Activate
Workbooks("Book2.xls").Worksheets("Sheet1").Cells.Select
Workbooks("Book2.xls").Worksheets("Sheet1").Paste
Application.CutCopyMode = False
Workbooks("Book2.xls").Windows("Book2.xls").Activate
ActiveWindow.Close
End Sub
二、代码解释
以下内容为代码解释:
Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)'此代码是事件名,意思是当对工作薄进行保存时,就执行如下的功能代码。
Workbooks.Open filename:=ThisWorkbook.path & "\book2.xls"'打开Book2.xls
Workbooks("Book1.xls").Windows("Book1.xls").Activate'让已经打开的Book1窗口处于激活状态
Workbooks("Book1.xls").Worksheets("Sheet1").Cells.Select'选择Book1中的Sheet1表的所有单元格
Selection.Copy'将Book1中的Sheet1表的所有被选中单元格的内容复制到剪贴板
Workbooks("Book2.xls").Windows("Book2.xls").Activate'激活Book2窗口
Workbooks("Book2.xls").Worksheets("Sheet1").Cells.Select'选择Book2中的Sheet1表的所有单元格
Workbooks("Book2.xls").Worksheets("Sheet1").Paste'将剪贴板中的内容粘贴到Book2中的Sheet1中
Application.CutCopyMode = False'
Workbooks("Book2.xls").Windows("Book2.xls").Activate'激活Book2窗口
ActiveWindow.Close'关闭Book2工作薄
三、上述代码的使用说明
如何使用上述代码呢,非常简单。
在使用的时候,由于代码是添加在Book1里面的,因此,我们只需要打开Book1,对工作表进行修改,然后,每次修改或最后,点击一次保存操作,这样,已经被修改过的内容,就会自动粘贴到Book2中。
代码原理:实际上,上述的代码功能,是这样的,采用复制粘贴的办法来更新另外一个没有打开的Book2的内容的。
当然,这仅仅是实现简单的功能,我们完全可以在上述代码的基础之上,进行扩展,就可以得出非常灵活非常强大的功能了。

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-25 05:55 , Processed in 0.137625 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表