Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno VBA Excel – Presúvanie riadkov v rámci tabuľky

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.

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny