选择EndDown,然后再选择2行

时间:2014-09-18 07:51:13

标签: excel vba excel-vba excel-2007

我有下面的代码选择A5以下的所有数据,包括右边的17列,然后偏移一个,所以我不清除标题行。

Set wksdestination = Sheets("Continental")
Set registcell = wksdestination.Range("A5")
Set rngdata = Range(registcell.End(xlDown).Offset(0, 17), registcell.Offset(1, 0))
rngdata.Clear

我还需要它清除结束行下面的两行 ,并且在某些列下面的单元格中偶尔会有一些SUM函数。有人可以帮助最后一点添加选择下面的两行吗?

我试过

Set wksdestination = Sheets("Continental")
Set registcell = wksdestination.Range("A5")
Set rngdata = Range(registcell.End(xlDown).Offset(2, 17), registcell.Offset(1, 0))
rngdata.Clear

但是这会产生运行时错误'1004'

我也试过了下面的内容,但如果没有数据则会中断,并且因为涉及选择不同的工作表而不理想,如果没有选择每张工作表就会更喜欢,但如果这是唯一的方法那么我必须做

Set wksdestination = Sheets("Continental")
Set registcell = wksdestination.Range("A5")
Set rngdata = Range(registcell.End(xlDown).Offset(0, 17), registcell.Offset(1, 0))
wksdestination.Select
Range(rngdata.Offset(2, 0), rngdata).Select
Selection.Clear

由于

1 个答案:

答案 0 :(得分:1)

尝试这种替代的细胞范围选择和偏移方法,以防止A5以下没有数据。

Dim wksdestination As Worksheet
Set wksdestination = Sheets("Continental")
With wksdestination
    With .Range("A5").Resize(Application.Max(2, .Cells(Rows.Count, 1).End(xlUp).Row - 3), 17)
        .Offset(1, 0).ClearContents
    End With
End With

至少,A5下面的两行将从A列到Q列清除内容和公式(但不是格式化)。