Excel VBA找到包含数据的最后一列,从右侧清除两列

时间:2018-11-30 17:17:00

标签: excel vba excel-vba

我具有用于复制粘贴功能的VBA。我想具有相同的清除单元格功能。我想在第10:31行找到最后一个单元格,并从右侧获取数据,然后在第10:31行清除最后两列。

我使用lastcolumn = Cells(1, Columns.Count).End(xlToRight).Column从右边的数据中查找最后一个单元格。

我如何设置10:31行并实现ClearContents来完成工作?

10 data data1 data2 data3 data4 data5 data6 data7 data8
11 data data1 data2 data3 data4 data5 data6 data7 data8
12 data data1 data2 data3 data4 data5 data6 data7 data8
13 data data1 data2 data3 data4 data5 data6 data7 data8
14 data data1 data2 data3 data4 data5 data6 data7 data8
...
31 data data1 data2 data3 data4 data5 data6 data7 data8

这个想法是,如果我单击一次按钮“ data8和data7”将被清除,那么我再次单击按钮“ data6和data5”将被清除。再次单击按钮“ data4和data3”消失,依此类推... 这是我的代码:

Sub Remove()
Application.ScreenUpdating = False
Dim lastcolumn As Integer
Dim lastrow As Long

'finds the last used column coming from the right
lastcolumn = Cells(1, Columns.Count).End(xlToRight).Column
Worksheets("Price calculation").Range("10:31").Offset(0, 1).ClearContents

Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub

1 个答案:

答案 0 :(得分:2)

如果只希望清除特定范围的单元格内容,请命名确切范围,例如:

With Worksheets("Price calculation")
    lc = .cells(10,.columns.count).end(xltoleft).column
    .Range(.cells(10,lc-2),.cells(31,lc)).ClearContents
End with