Vba 当数据跳过空白且不包含空白后的数据时查找最后一行

Vba 当数据跳过空白且不包含空白后的数据时查找最后一行,vba,excel,Vba,Excel,我有一个VBA代码,可以查找列中的最后一行数据并选择所有数据。我的数据在放置空行的三分之一处有一个中断。我希望能够找到中断前的最后一行数据,而不包括中断后同一列中的数据。有办法做到这一点吗 谢谢 Sub Resort() Dim ws As Worksheet Set ws = Worksheets("Workbench Report") lastrow = ws.Cells(ws.Rows.count, "E").End(xlUp).Row ws.Select ws.Range("B2:B

我有一个VBA代码,可以查找列中的最后一行数据并选择所有数据。我的数据在放置空行的三分之一处有一个中断。我希望能够找到中断前的最后一行数据,而不包括中断后同一列中的数据。有办法做到这一点吗

谢谢

Sub Resort()
Dim ws As Worksheet
Set ws = Worksheets("Workbench Report")

lastrow = ws.Cells(ws.Rows.count, "E").End(xlUp).Row

ws.Select
ws.Range("B2:B" & lastrow).Select

ws.Columns("B:G").Sort key1:=ws.Range("E1"), order1:=xlAscending, Header:=xlYes, Orientation:=xlSortColumns

ws.Select
ws.Range("E2").Select

End Sub

在单元格上使用
.End
功能。这将选择您想要的范围

Range(Cells(2, "B"), Cells(Cells(2, "E").End(xlDown).row, "G")).Select
我假设您只希望对断点上方的行进行排序,因此下面的操作应该可以完成

Sub Resort()
Dim ws As Worksheet
Set ws = Worksheets("Workbench Report")

ws.Range(Cells(2, "B"), Cells(Cells(2, "E").End(xlDown).row, "G")).Select
Selection.Sort key1:=ws.Range("E1"), order1:=xlAscending, Header:=xlYes, Orientation:=xlSortColumns

End Sub
当然你也可以把它做成一行

Sub Resort()
Dim ws As Worksheet
Set ws = Worksheets("Workbench Report")

ws.Range(Cells(2, "B"), Cells(Cells(2, "E").End(xlDown).row, "G")).Sort _
    key1:=ws.Range("E1"), order1:=xlAscending, Header:=xlYes, Orientation:=xlSortColumns

End Sub

在单元格上使用
.End
功能。这将选择您想要的范围

Range(Cells(2, "B"), Cells(Cells(2, "E").End(xlDown).row, "G")).Select
我假设您只希望对断点上方的行进行排序,因此下面的操作应该可以完成

Sub Resort()
Dim ws As Worksheet
Set ws = Worksheets("Workbench Report")

ws.Range(Cells(2, "B"), Cells(Cells(2, "E").End(xlDown).row, "G")).Select
Selection.Sort key1:=ws.Range("E1"), order1:=xlAscending, Header:=xlYes, Orientation:=xlSortColumns

End Sub
当然你也可以把它做成一行

Sub Resort()
Dim ws As Worksheet
Set ws = Worksheets("Workbench Report")

ws.Range(Cells(2, "B"), Cells(Cells(2, "E").End(xlDown).row, "G")).Sort _
    key1:=ws.Range("E1"), order1:=xlAscending, Header:=xlYes, Orientation:=xlSortColumns

End Sub

你也可以使用

lastrow = rngLastCell(range("b2").CurrentRegion).row 

Function rngLastCell(rng As Range) As Range
'returns the last cell of a range
    Set rngLastCell = rng.Cells(0, 0).Offset(rng.Rows.Count, rng.Columns.Count)
End Function

你也可以使用

lastrow = rngLastCell(range("b2").CurrentRegion).row 

Function rngLastCell(rng As Range) As Range
'returns the last cell of a range
    Set rngLastCell = rng.Cells(0, 0).Offset(rng.Rows.Count, rng.Columns.Count)
End Function

你能把你到目前为止的代码包括进来吗?是的,很抱歉,我已经添加了代码,我正在尝试对该列进行排序,以便这就是其余的内容。谢谢可能是:
lastrow=ws.Cells(2,“E”).End(xlDown)。Row
试试这个:lastrow=Cells(Rows.Count,1)。End(xlUp)。End(xlUp)。Row你能包括到目前为止的代码吗?是的,对不起,我已经添加了代码,我正在尝试对列进行排序,以便剩下的就是这样。谢谢可能是:
lastrow=ws.Cells(2,“E”).End(xlDown)。Row
试试这个:lastrow=Cells(Rows.Count,1)。End(xlUp)。End(xlUp)。Row