Presúvanie myšou vo VBA nie je možné, takže zostáva len tá jednoduchšia možnosť:
Dim CopyRange As Range
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim aTable As Range
Dim aRange As Range
Set aTable = Range("B3:H22")
Set aRange = Intersect(Target.Resize(1, 1), aTable.Resize(aTable.Rows.Count, 1))
If Not aRange Is Nothing Then
Set CopyRange = aRange.Resize(1, aTable.Columns.Count)
CopyRange.Copy
Cancel = True
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim aTable As Range
Dim aRange As Range
Dim srcRange As Range
Dim dstRange As Range
Dim tmpValue As Variant
If Not CopyRange Is Nothing Then
If Application.CutCopyMode = xlCopy Then
Set aTable = Range("B3:H22")
Set aRange = Intersect(Target.Resize(1, 1), aTable.Resize(aTable.Rows.Count, 1))
If Not aRange Is Nothing Then
Set srcRange = CopyRange
Set dstRange = aRange.Resize(1, aTable.Columns.Count)
tmpValue = dstRange.Value
dstRange = srcRange.Value
srcRange = tmpValue
End If
Application.CutCopyMode = False
End If
Set CopyRange = Nothing
End If
End Sub
PS: Omylom označený výber riadku sa dá zrušiť pomocou klávesy Escape.