Excel VBA,选择一个行下来的行

时间:2015-07-07 17:38:22

标签: excel vba excel-vba

我有一个像这样的子:

 Sub deleteExcessData(selectSheet As String, selectRow As Integer)   
    'selectSheet = go to a certain sheet
    'selectRow = go to a certain row

 End Sub

我想要做的是选择要开始的行,然后选择该行下面的所有非空白行一直到底部,然后删除该选择。 (这可以包括行或不包括该行)

我只想在这个子中使用2个变量,一个用于选择工作表,而on用于选择锚点行。数据是连续的。

如果数据中有一些随机空白单元怎么办?

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

尝试这样的事情:

Sub deleteExcessData(selectSheet As String, selectRow As Integer)
    lastRow = Worksheets(selectSheet).Cells(1, 1).End(xlDown).Row
    Worksheets(selectSheet).Rows(selectRow & ":" & lastRow).Delete
End Sub

如果你需要从底部上升,试试这个:

Sub deleteExcessData(selectSheet As String, selectRow As Integer)
    lastRow = Worksheets(selectSheet).Cell(Row.Count, 1).End(xlUp).Row
    Worksheets(selectSheet).Rows(selectRow & ":" & lastRow).Delete
End Sub

答案 1 :(得分:0)

这应该删除工作表底部的所有行,包括被调用的行。

Sub test()
    Call deleteExcessData("Sheet1", 9)
End Sub

Sub deleteExcessData(selectSheet As String, selectRow As Long)
    With Sheets(selectSheet).Cells(selectRow, 1)
        .Resize(Rows.Count - selectRow + 1, 1).EntireRow.Delete
    End With
End Sub

以上删除了9:1048576中的所有行。

如果已经由调用子定义,则可以交替传递工作表对象而不是名称。