删除column1以外的行元素,然后将其余单元向上移

时间:2018-11-14 07:06:41

标签: excel vba excel-vba

是否有任何方法可以删除除A列中的行元素以外的所有行元素,然后使用VBA编码仅将单元格向上移至已删除的行。现在,我手动选择除A列中的行元素以外的一行,然后使用 ctrl + -删除并向上移动单元格。

我也尝试过

Worksheets("sheet1").Rows(i).Delete Shift:=xlShiftUp

但是会删除整行。

1 个答案:

答案 0 :(得分:1)

您将需要指定该列以外的范围,例如

Worksheets("sheet1").Range("B1:D1").Delete Shift:=xlUp

例如,您还可以指定从B2开始,并动态查找同一行的最后一列:

With Worksheets("Sheet1")
   .Range(.Cells(2, 2), .Cells(2, .Cells(2, .Columns.Count).End(xlToLeft).Column)).Delete Shift:=xlUp
End With

要使它更容易修改,可以使用Constants,并且应该测试lastColumn比START_COLUMN>,否则可以删除keep列。

Const ROW_OF_INTEREST As Long = 2
Const START_COLUMN As Long = 2
Dim lastColumn As Long

With Worksheets("Sheet1")
    lastColumn = .Cells(ROW_OF_INTEREST, .Columns.Count).End(xlToLeft).Column
    If lastColumn > START_COLUMN Then
        .Range(.Cells(ROW_OF_INTEREST, START_COLUMN), .Cells(ROW_OF_INTEREST, .Cells(ROW_OF_INTEREST, .Columns.Count).End(xlToLeft).Column)).Delete Shift:=xlUp
    End If
End With