我有一个填充了随机数字的表格,我想删除表格左边的x列数,x表格底部的行数,并将剩余的值移到左下角。< / p>
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的桌子。
Range("B2:B20").Delete Shift:=xlToLeft
自身工作正常,它会将所有剩余值向右移动正确的列数,但向下移动行会返回
越界错误。
感谢。
答案 0 :(得分:0)
Excel在删除时不会移动Down
或Right
。
只有Left
或Up
可能:
XlShift - 仅用于Range对象。指定如何移动单元格以替换已删除的单元格。可以是以下XlDeleteShiftDirection常量之一:xlShiftToLeft
或xlShiftUp
。如果省略此参数,Microsoft Excel将根据范围的形状决定。
答案 1 :(得分:0)
不要循环
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