实现Excel表格中两个单元格区域间的数据交换的方法

如何实现Excel表格中两个单元格区域间的数据交换呢?通常我们使用剪切粘贴的方法来完成 , 但这个方法比较繁琐 , 如果数据区域较大还容易出错 。下面本文讲解编写一个可以实现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个 , 系统将会给出相应的出错提示 。
【实现Excel表格中两个单元格区域间的数据交换的方法】用宏交换区域

    推荐阅读