Как получить доступ к рабочему листу, ячейкам, с помощью кодового имени в виде переменной — Visual Basic(Бейсик)

Если Вы предпочитаете использовать кодовое (программное) имя рабочего листа, диаграммы, то, скорее всего, уже заметили, что это имя приходится указываться в виде константы, если же это неприемлемо, и Вам необходимо получить доступ к рабочему листу и его ячейкам, но при этом кодовое имя должно быть переменным, то решить поставленную задачу можно, как минимум, двумя способами:

вариант:

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

Leave a Comment