通过删除行和列移动 table

Shifting a table by deleting rows and columns

我有一个由随机数填充的 table,我想删除 table 左侧的 x 列,[=25= 底部的 x 行=] 并将剩余的值移动到左下角。

Public Sub shiftrandom()
Dim Difference As integer
Difference = 5
Dim i As Integer
For i = 1 To Difference
    Range("B2:B20").Delete Shift:=xlToLeft
    Range("B20:N20").Delete Shift:=xlDown
Next i

End Sub

这里 B2:B20 是第一列,B20:N20 是最后一行。这是一个 13x19 table.

Range("B2:B20").Delete Shift:=xlToLeft 本身工作正常,它将所有剩余值向左移动正确的列数,但下移行 returns 和

out of bounds error.

谢谢。

Excel删除时不移位DownRight

只有LeftUp可能:

XlShift - 仅用于 Range 对象。指定如何移动单元格以替换已删除的单元格。可以是以下 XlDeleteShiftDirection 常量之一: xlShiftToLeftxlShiftUp 。如果省略此参数,Microsoft Excel 根据范围的形状决定。

MSDN - Delete Range

不要循环

Public Sub shiftrandom()
    Dim Difference As Long
    Difference = 5
    With Range("B2:N20")
        .Resize(,Difference).Delete
        .Rows(.Rows.Count - Difference + 1).Resize(Difference).Delete 
    End With
End Sub