VBA移动选定的范围向上 /下(带有偏移?)



我正在构建一个工具,其中用用户选择的单元格内容以箭头形状移动。

下面的代码非常适合移动1个或更多组相邻单元格。但是,反转代码似乎很棘手(偏移中的 1不起作用: - ?)

有什么想法吗?谢谢你,奥古斯丁

Sub Move_Up()
    Selection.Cut
    Selection.Offset(-1, 0).Select
    Selection.Insert Shift:=xlDown
End Sub

假定要移动的单元格,而覆盖的单元格仅在移动的单元时移动,代码可能是以下内容:

Sub MoveUp()
    Selection.Rows(Selection.Rows.count + 1).Insert Shift:=xlDown
    Selection.Rows(1).Offset(-1).Cut Selection.Rows(Selection.Rows.count + 1)
    Selection.Rows(1).Offset(-1).Delete Shift:=xlUp
    Selection.Offset(-1).Select
End Sub
Sub MoveDown()
    Selection.Rows(1).Insert Shift:=xlDown
    Selection.Rows(Selection.Rows.count).Offset(2).Cut Selection.Rows(1)
    Selection.Rows(Selection.Rows.count).Offset(2).Delete Shift:=xlUp
    Selection.Offset(1).Select
End Sub

如果要移动一个单元格 up Selected块,然后:

Sub ShiftBlockUp()
    Dim r As Range
    Set r = Selection
    Intersect(r(1).EntireRow, r).Offset(-1, 0).Delete Shift:=xlUp
End Sub

如果要将一个单元格的Selected down 移动到一行:

Sub ShiftBlockDown()
    Dim r As Range
    Set r = Selection
    Intersect(r(1).EntireRow, r).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
End Sub

相关内容

  • 没有找到相关文章

最新更新