VBA 代码可以将一行两列与位置/名称同步旋转,以便顶行始终落在最后一个位置。代码应忽略空白单元格,仅旋转包含数据的单元格。细胞选择为A3-B18 单元格 A3 和 B3 应旋转到位置 A6 和 B6。单元格 A4 和 B4 应向上移动一行到 A3 和 B3。单元格 A5 和 B5 应向上移动到 A4 和 B4。基本上,即使选择范围更大,只有包含数据的单元格才应该采取行动并旋转。
旋转前
旋转后
这是代码:
Range("A9:B9").Select
Selection.Copy
Range("A29").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Range("A10:B24").Select
Application.CutCopyMode = False
Selection.Copy
Range("A9").Select
ActiveSheet.PasteSpecial Format:=3, Link:=1, DisplayAsIcon:=False, IconFileName:=False
Range("A29:B29").Select
Selection.Copy
Range("A24").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks :=False, Transpose:=False
Range("A29:B29").Select
Application.CutCopyMode = False
Selection.ClearContents Range("A3")
稍微适应具体要求:
Sub roller()
lastrow = Range("A2").End(xlDown).Row
Range("A3:B3").Cut Range("A" & lastrow + 1 & ":B" & lastrow + 1)
Range("A3:B3").Delete xlShiftUp
End Sub