Друзья! добрый день! Помогите советом начинашке
Тема такая:
Для создания связанных выпадающих списков, в том числе и с картинками)) назначаем для элементов управления(выпадающий список) именованные диапазоны.
Далее создаем макрос для изменения диапазона этих диапазонов))
Все работает, но есть минус - при создании новых листов нужно каждый раз править руками.
Логично сделать переменную с именем листа и тут я зашел в тупик...
А конструкция:
работает исправно только если нужный лист активен! Делать через Select видится не очень правильно.
Подскажите пожалуйста как правильно вписать переменную чтобы она определяла имя листа?
Тема такая:
Для создания связанных выпадающих списков, в том числе и с картинками)) назначаем для элементов управления(выпадающий список) именованные диапазоны.
Далее создаем макрос для изменения диапазона этих диапазонов))
Код |
---|
Sub Диапазон_Фото_вида_здания_Если() ' назначаем диапазон If Worksheets("Лист1").Cells(3, 1).Value = 1 Then ' тогда диапазон на листе А1 ActiveWorkbook.Names("Фото_вида_здания").RefersToR1C1 = "=А1!R1C40:R13C45" Else If Worksheets("Лист1").Cells(3, 1).Value = 2 Then ' тогда диапазон на листе А2 ActiveWorkbook.Names("Фото_вида_здания").RefersToR1C1 = "=А2!R1C1:R13C6" Else If Worksheets("Лист1").Cells(3, 1).Value = 3 Then ' тогда диапазон на листе П1 ActiveWorkbook.Names("Фото_вида_здания").RefersToR1C1 = "=П1!R1C1:R13C6" Else ActiveWorkbook.Names("Фото_вида_здания").RefersToR1C1 = "=П2!R1C1:R13C6" End If End If End If End Sub |
Все работает, но есть минус - при создании новых листов нужно каждый раз править руками.
Логично сделать переменную с именем листа и тут я зашел в тупик...
Код |
---|
Sub Диапазон_Фото_вида_здания() Dim лист лист = Worksheets("Лист1").Cells(3, 2).Text 'назначаем переменную лист (имя листа) ActiveWorkbook.Names("Фото_вида_здания").RefersToRange = "=лист!R1C1:R13C6" 'ЭТА СТРОКА ДАЕТ ОШИБКУ End Sub |
А конструкция:
Код |
---|
ActiveWorkbook.Names("Фото_вида_здания").RefersToR1C1 = Worksheets(лист).Range(Cells(1, 1), Cells(13, 6)) |
работает исправно только если нужный лист активен! Делать через Select видится не очень правильно.
Подскажите пожалуйста как правильно вписать переменную чтобы она определяла имя листа?