1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | Если Вы предпочитаете использовать кодовое (программное) имя рабочего листа, диаграммы, то, скорее всего, уже заметили, что это имя приходится указываться в виде константы, если же это неприемлемо, и Вам необходимо получить доступ к рабочему листу и его ячейкам, но при этом кодовое имя должно быть переменным, то решить поставленную задачу можно, как минимум, двумя способами: вариант: Dim iVBComponent As Object Dim iDiapazon As Range, iWorksheet As Worksheet iCodeName$ = "Лист 2 " Set iVBComponent = ThisWorkbook . VBProject . VBComponents(iCodeName$) Set iDiapazon = iVBComponent . Properties("Cells"). Object Set iWorksheet = iDiapazon . Worksheet '.Parent вариант: Dim iVBComponent As Object Dim iDiapazon As Range, iWorksheet As Worksheet iCodeName$ = "Лист 2 " Set iVBComponent = ThisWorkbook . VBProject . VBComponents(iCodeName$) Set iWorksheet = ThisWorkbook . Worksheets(iVBComponent . Properties("Name").Value) Set iDiapazon = iWorksheet . Cells Комментарий: В текущей рабочей книге обязательно должен присутствовать рабочий лист, с указанным кодовым именем, в противном случае возникнет ошибка Доступ к другим открытым рабочим книгам можно получить, если использовать индекс (номер) или имя нужной книги в семействе Workbooks, например, Workbooks( 1 ).Worksheets или Workbooks ("Personal . xls").VBProject |