Именованный диапазон VBA в формуле Excel - PullRequest
0 голосов
/ 06 декабря 2018

Я использую следующий код для добавления диапазона:

Combined_Data.Range("A1:AZ200").Find("Marker").Offset(1,0).Select  
Range(Selection, Selection.End(xlDown)).Select  
ThisWorkbook.Names.Add Name:="Marker",RefersTo:=Selection

Когда я использую именованный диапазон «Маркер» в формуле Excel (введенный непосредственно в электронную таблицу), рабочая книга не выглядитуважать значения, содержащиеся в диапазоне.Единственный способ заставить его работать, это использовать ссылку R1C1 на ячейки, которые я хочу найти в диапазоне.

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

Когда япосмотрите на менеджер имен, фактические ссылки на ячейки диапазона верны.В этом примере это: A6: A1655.Имя менеджера имеет: = 'Объединенные данные'! $ A $ 6: $ A $ 1655

Когда я использую ссылку R1C1, диапазон отображается в менеджере имен одинаково.

1 Ответ

0 голосов
/ 07 декабря 2018

Все диапазоны должны быть полностью квалифицированы для одного листа Combined_Data.Вам также необходимо установить параметр Range.Find() After для первой ячейки в диапазоне.

Dim marker As Range

With Combined_Data
    Set marker = .Range("A1:AZ200").Find("Marker", After:=.Range("A1"))
    If Not marker Is Nothing Then
        Set marker = marker.Offset(1, 0)
        Set marker = .Range(marker, marker.End(xlDown))
        marker.Name = "Marker"
    End If
End With

Эти видео помогут: Введение в Excel VBA, часть 5 - Выбор ячеек (диапазон, ячейки), Activecell, End, Offset) и Введение в Excel VBA, часть 15a - Find and FindNext

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