是否有任何方法可以删除除A列中的行元素以外的所有行元素,然后使用VBA编码仅将单元格向上移至已删除的行。现在,我手动选择除A列中的行元素以外的一行,然后使用 ctrl + -删除并向上移动单元格。
我也尝试过
Worksheets("sheet1").Rows(i).Delete Shift:=xlShiftUp
但是会删除整行。
答案 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