有時需要在Excel工作表中互換兩個區(qū)域中的數(shù)據(jù),如果區(qū)域相鄰可以直接用拖動鼠標(biāo)并按住Shift鍵的方法進(jìn)行互換。而當(dāng)兩區(qū)域不相鄰且兩個區(qū)域中的數(shù)據(jù)量較大時用VBA則較為快捷。例如在互換兩列時可以直接單擊工作表上方的列標(biāo)題選擇整列,然后執(zhí)行代碼互換數(shù)據(jù)。
在工作表中選擇兩個形狀相同的、無公共部分的區(qū)域,然后執(zhí)行下面的代碼,即可互換兩區(qū)域中的數(shù)據(jù)。
Sub TwoAreasSwap()
Dim TheArea1, TheArea2 As Variant
If Selection.Areas.Count <> 2 Then
MsgBox "請選擇兩個區(qū)域!"
Exit Sub
ElseIf Selection.Areas(1).Cells.Count <> Selection.Areas(2).Cells.Count Or _
Selection.Areas(1).Rows.Count <> Selection.Areas(2).Rows.Count Then
MsgBox "請選擇兩個形狀相同的區(qū)域!"
Exit Sub
Else
TheArea1 = Selection.Areas(1).Cells
TheArea2 = Selection.Areas(2).Cells
Selection.Areas(1).Cells = TheArea2
Selection.Areas(2).Cells = TheArea1
End If
End Sub