将列选择到最后一行,然后调整大小



我有一个代码,可以在 E 列中找到最后一行数据并选择最后一行的列。我希望能够在 B 列到 D 列中选择与 E 列相关的关联数据,然后根据 B 列进行排序。所以我想我只会在 E 列中找到最后一行,然后按 3 列调整大小并从该选择中排序,但我不断收到运行时错误 1004 应用程序定义或对象定义的错误。我在下面提供了我正在使用的代码。B 列到 D 列包含 E 列末尾以上的数据。谢谢!

ws.Range("E1:E" & finalrow).Resize(0, 3).Select
您可能

并不总是从第一行开始(例如 E1 ),所以如果没有一些数学,最后一行可能不适用。在这种情况下,请使用 ...End With 语句可缩短代码,同时显式引用正确的单元格和单元格区域。

dim lastRow as long
with ws
    lastRow = .cells(.rows.count, "E").end(xlup).row
    'option 1
    .range("B5:D" & lastRow).select
    'option 2
    with .range("E5:E" & lastRow)
        .offset(0, -3).resize(.rows.count, 3).select
    end with
    'option 3
    .range("E5", .cells(lastRow, "G")).offset(0, -3).select
end with

请参阅如何避免在 Excel 中使用"选择"VBA 宏,了解有关摆脱依赖 Range.Select 和 Range.Activate 以实现目标的更多方法。

像这样:

Sub SelectLast3Cols()
Dim ws As Worksheet, lrow As Long
Set ws = Sheets("Sheet3")
lrow = ws.Range("E" & ws.Rows.Count).End(xlUp).Row
    ws.Range("B1", ws.Range("D" & lrow)).Select
End Sub

相关内容