Имена. Добавление в VBA с использованием переменных

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

    ActiveWorkbook.Names.Add Name:="Validation_Range", RefersToR1C1:= _
    "='Holding Template'!R3C1,'Holding Template'!R4C2"

Вот переменные:

Dim PM As Range
Dim statement_date As Range

Set PM = ws.Range("A3")
Set statement_date = ws.Range("B4")

Если я использую 1 переменную, это работает, но я не могу использовать более одной переменной для создания несмежного диапазона.

3 ответа

Решение

Не ясно, как вы получаете два диапазона для установки ваших переменных, но вот некоторые сокращенные варианты, использующие метод Union.

Dim pm As Range, statement_date As Range
With Worksheets("Holding Template")
    Union(.Cells(3, 1), .Cells(4, 2)).Name = "Validation_Range"
    'alternate
    'Union(.Range("A3"), .Range("B4")).Name = "Validation_Range"
    'alternate
    'Set pm = .Range("A3")
    'Set statement_date = .Range("B4")
    'Union(pm, statement_date).Name = "Validation_Range"
End With

Любой из этих методов создает именованный диапазон области рабочей книги или перезаписывает RefersTo: существующего именованного диапазона Validation_Range с областью рабочей книги.

Создайте нужное имя вручную, а затем посмотрите, как оно составляется. Затем напишите код для сборки такой строки.

Нечто подобное похоже на работу:

Sub test()
    Dim PM As Range, ws As Worksheet
    Dim statement_date As Range

    Set ws = Sheets("Holding Template")
    Set PM = ws.Range("A3")
    Set statement_date = ws.Range("B4")

    ActiveWorkbook.Names.Add Name:="Validation_Range", RefersTo:= _
        "='" & ws.Name & "'!" & PM.Address & ",'" & ws.Name & "'!" & statement_date.Address
End Sub

Вот как я переименовал все заголовки в моей таблице:

Sub renameheader()
i = 5
For x = 1 To 30
Worksheets("CHECKALL_LIST").Cells(1, i).Name = "Checks_" & x
i = i + 3
Next
End Sub

Заголовки были объединены через каждые 3 ячейки, поэтому мне нужно было использовать "я". Надеюсь это поможет.

Другие вопросы по тегам