使用变量而不是硬编码的rowindex

时间:2019-02-28 16:41:27

标签: excel vba

我正在编写一些VBA来删除表中连续的行范围。我找到了几个示例,说明如何删除行,而大多数行用于删除选定的行,或者选择不连续的行。在此question中,它设置为循环遍历并一次删除一行。在另一个示例中,他们有以下一行可以一次性完成

rows("4:8").delete

现在这对我来说似乎很理想。我将开始行设置为变量,将最后一行设置为变量。

DIM First_Row as integer
DIM Last_Row as integer
    First_Row = 14
    Last_Row = First_Row + Application.worksheetfunction.MAx(Range("B:B")) -1

    Rows(First_Row:Last_Row).delete

'That last line is not working


    Rows("First_Row:Last_Row").delete

'nor the above

什么是一次删除没有循环的行的正确语法?

1 个答案:

答案 0 :(得分:1)

可以用不同的方式完成,例如:

Range(Cells(First_Row,1),Cells(Last_Row,1)).EntireRow.Delete

另一种也许更简单的方法是

Range(First_Row & ":" & Last_Row).Delete

您可能希望对行号变量使用Long而不是Integer,因为Integer可能会在现代Excel中溢出。