如何应用将列向下移动到所有工作表的VBA代码?

时间:2018-12-16 17:24:46

标签: excel vba

我试图将此VBA代码应用于所有工作表,但无济于事:

    Sub MoveColsDown()
' MovetoA16 Macro
For Each sh In ThisWorkbook.Worksheets
    Range("A1:I1171").Select
    Selection.Cut Destination:=Range("A16:I1186")
Next

End Sub

基本上,我正在尝试选择工作表中的所有内容并将其向下移动,以使数据的左上角现在位于A16中,而不是A1中。

对于我来说,选择所有数据可能还有更好的方法吗?现在,我只指定了一个范围,该范围远大于任何数据将占据的空间。

谢谢。

P.S。如果有一种方法可以将某些工作表从此流程中排除,我想学习一下...名为“仪表板”的工作表。

2 个答案:

答案 0 :(得分:4)

只需在工作表顶部插入15行。

Sub MoveColsDown()

    dim sh as worksheet
    For Each sh In ThisWorkbook.Worksheets
        if sh.name <> "Dashboard" then
            sh.Range("1:15").entirerow.insert
        end if
    Next sh

End Sub

答案 1 :(得分:0)

只需限定范围:

Sub MoveColsDown()
' MovetoA16 Macro
    For Each sh In ThisWorkbook.Worksheets
        sh.Range("A1:I1171").Cut Destination:=sh.Range("A16:I1186")
    Next

End Sub

注意:

我们不需要Select