Наименование рабочей книги - PullRequest
0 голосов
/ 31 января 2020

Так Workbooks.Open("D:\CE\2019\2019 Dump.xlsb") работает, но

Dim wb As Workbook
Set wb = Workbooks("D:\CE\2019\2019 Dump.xlsb")

Возвращает ошибку Subscript out of bounds

Почему?

1 Ответ

0 голосов
/ 31 января 2020

Коллекция Workbooks хранит имя (из открытых Workbooks) без пути в качестве индекса. При использовании Fullpath не открывается wb с таким именем -> элемент с таким индексом не найден -> в результате чего Subscript выходит за границы

Dim wb As Workbook
Set wb = Workbooks.Open("D:\CE\2019\2019 Dump.xlsb")
Dim wb2 As Workbook
Set wb2 = Workbooks("2019 Dump.xlsb")
Dim wb3 As Workbook
Set wb3 = Workbooks("not an opened wb") 'error here as not in collection
Dim wb4 As Workbook
Set wb4 = Workbooks.Item("not n opened wb") 'Workbooks("not n opened wb") is short for  Workbooks.Item("not n opened wb") still error here as not in collection

Чтобы пояснить: Workbooks("wbname") не будет открывать закрытый wb, по умолчанию (скрытый) член Workbooks - это свойство _Default, которое вызывает .Item (поскольку это коллекция), а не .Open.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...