在Excel VBA中,select一行下来的块

我有一个这样的子:

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

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

我只想在这个子文件中使用2个variables,一个是select工作表,on用于select锚点行。 数据是连续的。

如果数据中有一些随机的空白单元呢?

任何build议?

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

 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的所有行。

您可以交替地传递工作表对象而不是名称(如果已经由调用子定义的话)。

尝试这样的事情:

 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