1

Я новичок на VBA. То, что я хотел бы знать, может ли имя диапазона быть динамическим с несколькими листами. Я искал в Интернете и наткнулся на похожий вопрос, заданный кем-то другим, на который мне ответил кто-то с именем пользователя Gary's Student с этого сайта. Ниже приведена копия его / ее кода и ссылка на оригинальное сообщение.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim str As String
str = Range("A1").Text
If Intersect(Range("A1"), Target) Is Nothing Then Exit Sub
Dim n As Name
For Each n In ActiveWorkbook.Names
    If n.RefersTo = "=Sheet1!$A$2:$A$4" Then
        n.Delete
    End If
Next n
ActiveWorkbook.Names.Add Name:=str, RefersTo:="=Sheet1!$A$2:$A$4"
End Sub

Может ли имя именованного диапазона быть динамическим?

Я хотел бы знать, возможно ли дублировать Sheet1 вместе с его динамическим именем и диапазоном и в одной и той же рабочей книге и, скажем, Sheet2 (код листа) с другим именем диапазона (возможно, с другим / таким же диапазоном ячеек) , Я попытался поиграть с этой идеей, но получил сообщение об ошибке

Compile error: 

Ambiguous name detected: Worksheet_Change

Причина, по которой мне нужно дублировать рабочий лист, заключается в том, что Sheet1 будет моим расчетом затрат для "Базового варианта", а Sheet2 будет для "Варианта 1". Вариант 1 будет иметь большую часть содержимого как "Базовый случай", но некоторые изменения. Затем я создам таблицу сравнения, чтобы определить изменения между двумя (или более, максимум 4) рабочими листами.

Буду очень признателен за любую помощь.

Шон

Позднее добавление к первому вопросу

После работы с рабочими листами, над которыми я работаю, я теперь понимаю, что мне нужно иметь возможность дублировать рабочий лист из, скажем, рабочего листа «Базовый случай», где рабочий лист «Базовый случай» имеет несколько именованных диапазонов. Мне потребуется дублированный новый рабочий лист, скажем «Sheet2», чтобы иметь те же имена именованных диапазонов Sheet1, но некоторые из этих диапазонов будут ссылаться на большее или меньшее количество строк. Например (см. Ниже), в Sheet1 у меня есть 3 именованных диапазона следующим образом.

--In Sheet1-- 
Name of named range 1: "Substructure"       Range:$A$20:$A40
Name of named range 2: "Superstructure"     Range:$A$42:$A60
Name of named range 3: "Finishes"           Range:$A$62:$A80

--In Sheet2-- 
Name of named range 1: "Substructure"       Range:$A$20:$A30
Name of named range 2: "Superstructure"     Range:$A$32:$A66
Name of named range 3: "Finishes"           Range:$A$68:$A100

Шон

0