2016-06-28 4 views
0

Есть ли быстрый способ вернуть следующий ряд строк за пределами заданного диапазона. Мои мысли - это смещение, это лучше всего для этого, но я изо всех сил пытаюсь найти, как конечный ряд строк можно захватить перед применением смещения.Возврат строки ниже заданного диапазона

E.g. сказать, что мой диапазон определяется как Apple, является A1: B100, как я определяю P в качестве моего последнего диапазона строк:

p = Range("Apple"). [last row range function] , прежде чем я использую requiredrow = p.offset(1,0)

+0

Спасибо Scott, хотя p возвращается как значение, тогда как в идеале я хочу, чтобы p возвращался как диапазон (например, в моем примере P возвращается как диапазон («A101: B101») - вот почему я думал, что функция смещения может работать ! –

+0

см. Мое редактирование ниже –

+0

Per fect! Спасибо! –

ответ

4

Вы можете использовать это:

p = Range("Apple").Row + Range("Apple").Rows.Count 

Range("Apple").Row возвращает номер первой строки и Range("Apple").Rows.Count добавляет к этому счет.

Если вы хотите р быть установлен в диапазоне, который является строка непосредственно под и те же столбцы, то:

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) 
1

Вы все еще можете использовать Offset для этого, вместе с Resize:

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