Code in normal module :
Public Switcher_Status As Boolean
Public Switcher_FirstRange As Range
Sub Switcher_Start()
Switcher_Status = True
Set Switcher_FirstRange = Nothing
End Sub
Code in sheet module :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim arr()
If Switcher_Status = True Then
If Switcher_FirstRange Is Nothing Then
Set Switcher_FirstRange = Target
Else
If Target.Count = 1 Then
ReDim arr(1 To 1, 1 To 1)
arr(1, 1) = Target.Formula
Else
arr = Target.Formula
End If
Target.ClearContents
Target.Resize(Switcher_FirstRange.Rows.Count, Switcher_FirstRange.Columns.Count).Formula = Switcher_FirstRange.Formula
Switcher_FirstRange.ClearContents
Switcher_FirstRange.Resize(UBound(arr, 1), UBound(arr, 2)).Formula = arr
Switcher_Status = False
End If
End If
End Sub
You need to call Sub Switcher_Start() everytime you want to do the switch (you can assign a keyboard shortcut to this sub if you use it a lot).
Bookmarks