Этот саб выполнит трюк:
Sub swapper()
Dim cellfirst As String, cellsecond As String
If Not Selection.Cells.Count = 2 Then
MsgBox ("Please only select two cells")
Else
If Selection.Areas.Count > 1 Then
cellfirst = Selection(1).Value
cellsecond = Selection.Areas(2).Value
Selection(1).Value = cellsecond
Selection.Areas(2).Value = cellfirst
Else
cellfirst = Selection(1).Value
cellsecond = Selection(2).Value
Selection(1).Value = cellsecond
Selection(2).Value = cellfirst
End If
End If
End Sub
Он проверит, выбраны ли две ячейки, если не выдаст сообщение об ошибке. Затем он проверит, находятся ли клетки отдельно или близко друг к другу. Затем, основываясь на этом, сохраните значения обеих ячеек в строках, поменяйте местами строки и напечатайте обратно в ячейку.
Примечание. Выберите две разные ячейки, удерживая ctrl
и щелкая обе ячейки.
Я понимаю, что это не 1 к 1, что вы просили, но зачем пытаться копировать что-то самостоятельно, если вы можете сделать так, чтобы макрос делал все для вас?