灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:4637回复:0

[Excel技巧]如何实现Excel表格中两个单元格区域间的数据交换

楼主#
更多 发布于:2012-08-31 14:47


  如何实现Excel表格中两个单元格区域间的数据交换呢?通常我们使用剪切粘贴的方法来完成,但这个方法比较繁琐,如果数据区域较大还容易出错。下面我们试着来编写一个可以实现该功能的“宏”吧。
  打开“工具”菜单中的“宏”,选择“录制新宏”命令,在个人宏工作簿中(Personal.xls)创建一个名为Exchange 的宏,代码如下:
代码:
  '判断用户是否选择了两个单元格或单元格区域
  If Selection.Areas.Count = 2 Then
  Set XR = Selection.Areas(1)
  Set YR = Selection.Areas(2)
  '判断选区是否重叠
  If Not intersect(XR, YR) Is Nothing Then
  Result = MsgBox(" 选择区域有重叠!交换后重叠区域的数据将有部份被覆盖!" ; vbCrLf ; " 是否继续?", vbYesNo)
  If Result = vbNo Then Exit Sub
  End If
  If XR.Rows.Count = YR.Rows.Count And XR.Columns.Count = YR.Columns.Count Then
  '交换选区
  SZ1 = XR.Formula
  SZ2 = YR.Formula
  XR = SZ2
  YR = SZ1
  Else
  MsgBox "选择的两个数据区域大小不一样!请确认重新选择!"
  End If
  Else
  MsgBox "请按住Ctrl键选择两个要交换的数据区域!"


  自定义一个工具栏按钮,并将创建的宏指定给该按钮即可(如图)。如果选中的两个单元格的区域大小(单元格个数)不同或选择的数据少于2个,系统将会给出相应的出错提示。

喜欢0 评分0
游客

返回顶部