VBA使用第二行以外的按钮上下移动行

时间:2018-09-24 13:57:04

标签: excel vba select

我希望你能帮助我做到这一点。

我需要一个VBA代码,该代码可以上下移动具有已激活单元格的行。第二列应冻结不动。

数据看起来像Data excel 优先级应该冻结,其余的应该上下移动。

我有这段代码,但是它移动了整行。

Sub MoveDown()
Selection.EntireRow.Select
Selection.Cut
ActiveCell.Offset(2, 0).Range("A1").Select
Selection.EntireRow.Select
Selection.Insert Shift:=xlDown
ActiveCell.Offset(-1, 0).Range("A1").Select
End Sub

Sub MoveUp()
Selection.EntireRow.Select
Selection.Cut
ActiveCell.Offset(-1, 0).Range("A1").Select
Selection.EntireRow.Select
Selection.Insert Shift:=xlDown
End Sub

先谢谢您。 最好

1 个答案:

答案 0 :(得分:2)

在B列中无需更改公式:

Public Sub moveRowUp()
    If Selection.row <> 2 Then
        'move the whole row
        Selection.EntireRow.Cut
        Selection.Offset(-1, 0).EntireRow.Insert shift:=xlDown
        'move column 2 back
        Selection.EntireRow.Cells(1, 2).Cut
        Selection.EntireRow.Cells(1, 2).Offset(-1, 0).Insert shift:=xlDown
    End If
End Sub

Public Sub moveRowDown()
    If Selection.row <> 1 Then
        'move the whole row
        Selection.EntireRow.Cut
        Selection.Offset(2, 0).EntireRow.Insert shift:=xlDown
        'move column 2 back
        Selection.EntireRow.Cells(1, 2).Cut
        Selection.EntireRow.Cells(1, 2).Offset(2, 0).Insert shift:=xlDown
    End If
End Sub