Excel VBA - Как преобразовать строку в формулу при создании именованного диапазона - PullRequest
0 голосов
/ 21 февраля 2019

Я пишу некоторый код для создания множества идентичных листов на основе мастер-листа.Мастер-лист имеет несколько именованных диапазонов, которые мне нужно продублировать для новых листов (каждое именованное имя диапазона имеет префикс с номером, соответствующий имени листа, например, P1_rngname, P2_rngname и т. Д.).В настоящее время я создаю новое имя и новый диапазон в виде строк на основе данных из мастер-листа с важными строками кода ниже:

Form = "='P" & Pnum & "'!" & Range(Pmaster_nm).Address
ActiveWorkbook.Names.Add Name:="P" & Pnum & nm, RefersToR1C1:=Form

Pnum - это новый префикс имени листа для именованного диапазонаnm - суффикс для нового именованного диапазона (такой же, как суффикс для master), так что «P» & Pnum & nm - имя нового именованного диапазона. Pmaster_nm - имя именованного диапазона в копируемом мастер-листе

Форма - это новый диапазон на новом листе, например, "='P5'!$G$8" (переменная определена как строка)

Однако, когда я запускаю код, я получаю ошибку времени выполнения 1004 ", есть проблема сэта формула ", когда он попадает в строку, чтобы добавить новое имя.Я подозреваю, что это потому, что ActiveWorkbook.Names.Add ожидает диапазон, но получает строку.Я попытался определить форму как диапазон, но затем ошибка возникает в предыдущей строке.Как я могу заставить его думать, что Форма - это формула?

Любая помощь будет высоко ценится.

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