Private Sub XXXX_Click()
Dim rng As Range
Dim rng2 As Range
Dim SummaryWb As Workbook
Dim ws As Worksheet
Dim tba As Variant
Dim wss As Variant
Dim tbrange As Variant
Dim myRangeName As String
wss = ThisWorkbook.Worksheets("ORSA").Range("G2:G10")
tbrange = ThisWorkbook.Worksheets("ORSA").Range("J2:J10")
tba = ThisWorkbook.Worksheets("ORSA").Range("C2:C10")
Set SummaryWb = Workbooks.Open("xxxxxx.xlsx")
For i = 1 To UBound(tba)
Set ws = SummaryWb.Worksheets(wss(i, 1))
Set rng2 = SummaryWb.ws.Range(tbrange(i, 1))
myRangeName = tba(i, 1)
SummaryWb.Names.Add Name:=myRangeName, RefersTo:=rng2
Next i
Здравствуйте, это мой код. Я пытаюсь присвоить имена диапазонам. У меня есть две рабочие тетради. Рабочая книга1 имеет имена диапазонов, диапазоны для назначения имени и имена рабочих листов в SummaryWb (которая является второй рабочей книгой). Это пример:
1) wss - это переменная варианта, в которой хранятся имена рабочих листов, например, Sheet1a
2) tbrange - это переменная варианта, в которой хранятся диапазоны, которые я хочу присвоить names, например "A12: B25" ----> Обратите внимание, что диапазоны указаны в SummaryWb
3) tba - это переменная варианта, в которой хранятся имена диапазонов, которые я хочу назначить, например RangeName1
Мой код не работает. Я не знаю почему. Я получаю ошибки, когда пытаюсь установить rng2, а имя не изменяется во второй книге.
Что я могу сделать?