Определение именованного диапазона по формуле или UDF - PullRequest
0 голосов
/ 19 марта 2019

Я хотел бы спросить о вашем опыте определения именованного диапазона в Excel.

Обычно я использую эту формулу:

=OFFSET(Sheet!$A$1;0;0;COUNTA(Sheet!$A:$A);COUNTA(DATA!$1:$1))

Это прекрасно работает для динамического диапазона.Он изменяется после добавления строк или столбцов в исходную таблицу.Проблема появляется, когда некоторые данные вводятся за пределы таблицы в столбце A или строке 1. В этом случае

Тогда я подумал, что Range("A1").CurrentRegion.Address в UDF сделает эту работу.Но эта команда пропускается в UDF ... так как она не работает только с ячейкой, которая содержит формулу, я полагаю.

Кто-нибудь использует какую-то формулу или UDF, который является более надежным?

1 Ответ

0 голосов
/ 20 марта 2019

Нечто подобное может работать, но будет зависеть от отсутствия «мешающего» содержимого на листе:

' "rng" is the top-left corner of the table you want to return
Function FullTable(rng As Range) As Range
    Dim lastCol As Long, lastRow As Long

    With rng.Parent
        lastRow = .Cells(.Rows.Count, rng.Column).End(xlUp).Row
        lastCol = .Cells(rng.Row, .Columns.Count).End(xlToLeft).Column
        Set FullTable = .Range(rng, .Cells(lastRow, lastCol))
    End With

End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...