六合开奖结果现场直播欢迎诸位!收藏本站注 册登 陆
常用三肖中特马:基础知识网络知识操作系统WPS网页制作数据库算法网页成功之路网络安全最新技术古典mid流行midmid背景下载中心
您现在的位置:首页 > 三肖中特马 > 文章页

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

Admin | 2009-12-25 22:26:16 | ReadNums | 8897 | 标签 六合开奖结果现场直播 | 打印本页
     

  如题所示,我们如何同步更新两个工作薄中的Sheet的内容呢?

  本例要讲的例子是:

  比如,我们有两个工作薄,其名称为Book1和Book2,这两个工作薄,放在相同的文件夹下面,即工作薄保存位置一样。

  现在,我们要做的就是,当我们修改Book1中的Sheet1里面的单元格内容是,如何同步更新到Book2中的Sheet1呢?

  要实现这种效果,最好就是使用VBA了,因为此方法通用性强、功能强大,此外,由于管理维护。

  下面我们看一下如何编写此功能的VBA代码吧

  如上图,首先在工作薄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的内容的。

  当然,这仅仅是实现简单的功能,我们完全可以在上述代码的基础之上,进行扩展,就可以得出非常灵活非常强大的功能了。


问题未解决:在线咨询

网友评论

(访客)
内容实用原创,讲得很好。
20xx年x月x日
(站长)
有问题请在线咨询。
20xx年x月x日