Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 返回定义范围下的行_Vba_Excel - Fatal编程技术网

Vba 返回定义范围下的行

Vba 返回定义范围下的行,vba,excel,Vba,Excel,是否有快速方法返回定义范围之外的下一行范围。我的想法是,偏移量是最好的,但在应用偏移量之前,我很难找到如何获取最终行范围 例如,假设我定义为Apple的范围是A1:B100,我如何定义p作为我的最后一行范围: p=Range(“苹果”)。[最后一行范围功能] 在我使用requiredrow=p.offset(1,0)之前,请使用以下命令: p = Range("Apple").Row + Range("Apple").Rows.Count Range(“Apple”).Row返回第一行编号,而

是否有快速方法返回定义范围之外的下一行范围。我的想法是,偏移量是最好的,但在应用偏移量之前,我很难找到如何获取最终行范围

例如,假设我定义为Apple的范围是A1:B100,我如何定义p作为我的最后一行范围:

p=Range(“苹果”)。[最后一行范围功能]
在我使用
requiredrow=p.offset(1,0)

之前,请使用以下命令:

p = Range("Apple").Row + Range("Apple").Rows.Count
Range(“Apple”).Row
返回第一行编号,而
Range(“Apple”).Rows.Count
将计数添加到该行

如果要将p设置为一个范围,该范围是直接位于下的行和相同的列,则:

Dim p As Range
Dim ws As Worksheet
Set ws = Sheets(Mid(Range("Apple").Name, 2, InStr(Range("Apple").Name, "!") - 2))

With ws
    Set p = .Range(.Cells(Range("Apple").Row + Range("Apple").Rows.Count, Range("Apple").Column), .Cells(Range("Apple").Row + Range("Apple").Rows.Count, Range("Apple").Column + Range("Apple").Columns.Count - 1))
End With
Debug.Print p.Address(0, 0)
您可以使用以下命令:

p = Range("Apple").Row + Range("Apple").Rows.Count
Range(“Apple”).Row
返回第一行编号,而
Range(“Apple”).Rows.Count
将计数添加到该行

如果要将p设置为一个范围,该范围是直接位于下的行和相同的列,则:

Dim p As Range
Dim ws As Worksheet
Set ws = Sheets(Mid(Range("Apple").Name, 2, InStr(Range("Apple").Name, "!") - 2))

With ws
    Set p = .Range(.Cells(Range("Apple").Row + Range("Apple").Rows.Count, Range("Apple").Column), .Cells(Range("Apple").Row + Range("Apple").Rows.Count, Range("Apple").Column + Range("Apple").Columns.Count - 1))
End With
Debug.Print p.Address(0, 0)

您仍然可以使用
Offset
以及
Resize

Dim p                     As Range
With Range("Apple")
    Set p = .Resize(1).Offset(.Rows.Count)
End With
Debug.Print p.Address(0, 0)

您仍然可以使用
Offset
以及
Resize

Dim p                     As Range
With Range("Apple")
    Set p = .Resize(1).Offset(.Rows.Count)
End With
Debug.Print p.Address(0, 0)

感谢Scott,虽然p作为值返回,但理想情况下,我希望p作为范围返回(例如,在我的示例中,p作为范围(“A101:B101”)返回)-这就是为什么我认为偏移量函数可以工作的原因!完美!谢谢!感谢Scott,尽管p作为值返回,但理想情况下,我希望p作为范围返回(例如,在我的示例中,P作为范围(“A101:B101”)返回-这就是为什么我认为偏移函数可能会工作的原因!太好了!谢谢!