Workbooks
- это collection
(часть фактического Application
-объекта).Доступ к коллекции в VBA можно получить либо по порядковому номеру (индекс начинается с 1), либо по name . имя открытой Рабочей книги - это имя, включающее расширение, в вашем случае, вероятно, Final_Output.xlsx
или Final_Output.xlsm
.
Sheets
и Worksheets
являются коллекциями в Workbook
, доступ к которым снова осуществляется через индекс или имя (разница состоит в том, что Worksheets
содержит «настоящие» электронные таблицы, тогда как Sheets
также может содержать листы других типов.(например, диаграммы).
Итак, в вашем случае вы хотите получить доступ к Range
определенного листа определенной рабочей книги.Книга имеет фиксированное имя, а имя листа хранится в переменной.Например, вы можете написать
dim sheetName as string, sheet as Worksheet, Output_tot_n as Range
sheetName = "AAA" ' (put your logic here)
set sheet = Workbooks("Final_Output.xlsm").Worksheets(Sheet_name)
set Output_tot_n = sheet.Range("B7")
или собрать все вместе (в зависимости от ваших потребностей)
set Output_tot_n = Workbooks("Final_Output.xlsm").Worksheets(Sheet_name).Range("B7")