在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