select 范围在 excel 宏中

select range in excel macro

无法select在宏中明确范围。 我的数据范围是 B4:N80(数据总是从 B4 开始,它可以到任何单元格) 所以我正在为 select 这个范围

创建宏
LastRow = DSheet.Cells(Rows.Count, 4).End(xlUp).Row
LastCol = DSheet.Cells(2, Columns.Count).End(xlToLeft).Column
Set PRange = DSheet.Cells(4, 2).Resize(LastRow, LastCol)

用上面的代码无法select从B4到"XX"

的整个数据

如果您的目标是select您需要添加的范围

PRange.Select

我也认为你的参数会有点偏差。正确的范围是

Set PRange = DSheet.cells(4, 2).Resize(LastRow - 4, LastCol - 2)

编辑:您的参数将关闭,因为您的起始范围是 B4。因此,例如,如果您的数据下降到 B10,则 LastRow 将设置为最后一个数据条目的行号,在本例中为 10。现在,如果您想扩展所需范围以包括所有数据条目,则不必将大小调整为 10 (LastRow),但调整为 6 (LastRow - 4),因为 4 + 6 = 10。在您的示例中,它将是 4 + 10 = 14,这比您的数据条目实际达到的要高。

声明所有变量,如果您只是想 select 范围,请使用 .Select

Sub test()

    Dim LastRow As Long
    Dim LastCol As Long
    Dim PRange As Range
    Dim DSheet As Worksheet

    Set DSheet = ActiveSheet
    LastRow = DSheet.Cells(Rows.Count, 4).End(xlUp).Row
    LastCol = DSheet.Cells(4, Columns.Count).End(xlToLeft).Column
    Set PRange = DSheet.Cells(4, 2).Resize(LastRow, LastCol)
    PRange.Select

End Sub

这对你有用吗?

Sheets("DSheet").Activate
Range("B4").Select
Set PRange = Range(Selection, Selection.End(xlToRight).End(xlDown))