Excel实战技巧56: 快速交换所选的两个单元格区域中的值

2019-10-09 14:48:22 浏览数 (1)

有时候,我们需要将两个单元格区域中的数据对换,也就是说,第一个区域的数据放置到第二个区域,而第二个区域的数据放置到第一个区域。

通常,我们可以先将第一个区域的数据复制到另一个地方,然后将第二个区域的数据复制到第一个区域,最后将先前复制到另一个地方的数据复制到第二个区域。

然而,使用VBA代码可以帮助我们快速完成任务,如下图1所示。

图1

代码如下:

代码语言:javascript复制
'交换所选择的两个单元格区域
Sub SwapTwoRanges()
   Dim rng As Range
   Dim rngTemp As Variant
    '要交换的区域
   Set rng = Selection
    '判断是否是两个区域且它们大小相同
   If rng.Areas.Count <> 2 Or _
      rng.Areas(1).Cells.Count <> _
      rng.Areas(2).Cells.Cells.Count Then
      MsgBox "请选择两个大小相同的区域"
      Exit Sub
   End If
    '临时存储第一个区域的数据
   rngTemp = rng.Areas(1).Cells.Formula
    '将第二个区域的数据输入到第一个区域
   rng.Areas(1).Cells.Formula = rng.Areas(2).Cells.Formula
    '将第一个区域的数据填到第二个区域
   rng.Areas(2).Cells.Formula = rngTemp
End Sub

注意,运行代码前需要先选择两个相同大小的区域,也就是要交换数据的区域。

代码的图片版如下:

vba

0 人点赞