Bom dia, Fernando, seja bem vindo ao Planilhando!
Uma solução seria o VBA copiar cada uma das áreas (de tamanhos iguais) pré-selecionadas com CTRL como especificado e colar em algum espaço vazio da planilha (ou para uma nova planilha que poderia ser eliminada depois) e depois copiar e colar de volta invertendo os ranges. Escolhi para isso as células à partir da A30 em sua planilha, já que estão vazias. Adapte esse local vazio para seu caso.
Sub SwapRange()
Dim rg1 As Range, rg2 As Range, rgTemp1 As Range, rgTemp2 As Range
Set rg1 = Selection.Areas(1): Set rg2 = Selection.Areas(2)
If rg1.Rows.Count = rg2.Rows.Count And _
rg1.Columns.Count = rg2.Columns.Count Then
Application.ScreenUpdating = False
Set rgTemp1 = [A30].Resize(rg1.Rows.Count, rg1.Columns.Count)
Set rgTemp2 = rgTemp1.Cells(rg1.Rows.Count, 1).Offset(1, 0) _
.Resize(rg2.Rows.Count, rg2.Columns.Count)
rg1.Copy rgTemp1: rg2.Copy rgTemp2
rgTemp1.Copy rg2: rgTemp2.Copy rg1
rgTemp1.Clear: rgTemp2.Clear
Application.ScreenUpdating = True
Else
MsgBox "As áreas selecionadas não são do mesmo tamanho"
End If
End Sub
Postado : 09/08/2018 6:49 am