Я пишу некоторый код для создания множества идентичных листов на основе мастер-листа.Мастер-лист имеет несколько именованных диапазонов, которые мне нужно продублировать для новых листов (каждое именованное имя диапазона имеет префикс с номером, соответствующий имени листа, например, 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 ожидает диапазон, но получает строку.Я попытался определить форму как диапазон, но затем ошибка возникает в предыдущей строке.Как я могу заставить его думать, что Форма - это формула?
Любая помощь будет высоко ценится.