注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

零售创新,创新那些事儿,SPSS,VBA

零售创新

 
 
 

日志

 
 
关于我

新浪微博,零售创新 研究经理,数据分析师 希望和市场研究和零售业的同事共同进步! 本博客发表的都是免费或试用的资料,如果有版权问题请发邮件wangli12a@163.com联系删除。 spss excel vba blog

网易考拉推荐

同时输入数据到多个工作表  

2011-09-05 15:37:59|  分类: VB和VBA知识 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

同时输入数据到多个工作表

经常需要在多个工作表中重复某些数据。可以使用Excel的组合工具,使得在某工作表中输入数据时能够同时将数据输入到多个工作表中。然而,也有更快速且灵活的方式,即使用VBA代码。
在Excel中,有一项能使数据一次放置在多个位置的功能,称之为组。其操作是通过将工作表组合在一起,以便它们在工作簿内建立链接。
手工组合工作表
要手工使用组的功能,只需简单地单击将要输入数据的工作表,并在单击想要放置数据的工作表的标签名时按住Ctrl键。此时,当在工作表的任意单元格中输入数据时,这些数据也将自动输入到已组合的其它工作表中。
要取消工作表组合,只需单击除组合的工作表之外的其它任一工作表标签,或者在工作表标签中单击右键,选择“取消组合工作表”命令。
提示:当将工作表组合在一起时,能够看到标题栏中在工作簿名称后面添加了一对方括号,其中显示“工作组”。这能很方便地查看工作表是否是组合的。建议在完成同步输入数据操作后,取消工作表组合。
虽然上面介绍的方法很容易,但也意味着需要记住工作表是否处于组合状态,并且在不需要时取消组合,否则将存在覆盖其它工作表数据的风险。例如,您可能想仅对某特定的单元格区域同步输入数据,如果在其它区域输入数据时,忘记取消工作表组合则可能覆盖掉其它工作表中已存在的数据或者输入不需要的数据。
自动组合工作表
能够通过使用一些非常简单的VBA代码克服上述缺点。要使这些代码能够工作,必须将它们放置在Sheet对象的私有模块中。即在VBE中右击工作表名称,选择“查看代码”或者双击工作表名称。然后,使用Excel的工作表事件之一,并将代码放置在事件过程中。
首先命名希望成组的单元格区域,以便在其它工作表中自动显示数据。然后,在工作表模块中输入下面的代码:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Range(”MyRange”), Target) Is Nothing Then
‘有目的的将工作表Sheet5放置在第一位,使之成为活动工作表
Sheets(Array(”Sheet5″, “Sheet3″, “Sheet1″)).Select
Else
Me.Select
End If
End Sub
在代码中,使用了命名的区域MyRange,可以将MyRange修改为您工作表中使用的单元格区域名称,同时修改代码中三个工作表名称为希望组合的工作表名称。
clip_image001
图:自动组合工作表的代码
注意,代码中在数组中使用的第一个工作表名必须是包含代码的工作表,并且您将在该工作表中输入数据。
一旦编写好代码,每次选择工作表中的任意单元格时,代码就会检查是否所选的单元格在命名区域MyRange中。如果在该区域,那么代码将自动组合你希望组合的工作表。如果不在,将通过激活正处理的工作表而取消组合。这项技巧的优点是不需要人工组合工作表,因而没有因为忘记取消组合而造成的危险,同时节省了时间并避免产生障碍。
如果希望在其它工作表中显示相同的数据,但不是出现在相同的单元格地址,那么使用如下的代码:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range(”MyRange”), Target) Is Nothing Then
With Range(”MyRange”)
.Copy Destination:=Sheets(”Sheet3″).Range(”A1″)
.Copy Destination:=Sheets(”Sheet1″).Range(”D10″)
End With
End If
End Sub
上面的代码也需要放置在Sheet对象的模块中,具体操作与前面内容相同。

注::初译自《Excel Hacks》

  评论这张
 
阅读(1019)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017