无法在宏中清楚地选择范围。 我的数据范围是B4:N80(数据始终从B4开始,并且可以上升到任何单元格) 所以我要创建宏以选择此范围
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)
使用上述代码无法从B4到“ XX”中选择整个数据
答案 0 :(得分:3)
声明所有变量,如果您只是想选择范围,请使用.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
答案 1 :(得分:2)
如果您的目标是选择需要添加的范围
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,这比您的数据条目实际达到的值要高。
答案 2 :(得分:2)
这对您有用吗?
Sheets("DSheet").Activate
Range("B4").Select
Set PRange = Range(Selection, Selection.End(xlToRight).End(xlDown))