Запрос наличия листа в закрытой книге - VBA
Формулировка задачи:
Здравствуйте. прошу помощи.
Задача - узнать есть ли определенный лист в закрытой книге без его открытия. Макрос обрабатывает большой массив данных, хочется сэкономить ресурсы и открывать только те файлы в которых данные есть. На данный момент я нашел только один вариант через ADO, но для меня это темный лес. Лист который необходим на проверку называется "МСФО", в рамках ADO прошу дописать именно эту часть кода по поиску листа.
Вся эта проблема с необходимостью не открывать файлы возникла по причине того, что некоторые книги имеют встроенные макросы, которые запускаются при открытии. Что за макросы я не знаю, так как код запаролен и мне недоступен. При использовании
выдает ошибку Run-time error 9: Subscript out of range.
Пробовал делать так:
и еще вот так
Но результат один и тот - ошибка. Все галочки о безопасном режиме стоят.
Итого 2 вопроса:
1 Как открыть файл с запретом ему выполнять чтобы там ни было (сценарии, связи, макросы и тд)?
2 Либо допишите пожалуйста через ADO запрос необходимого листа "МСФО"
Спасибо.
Листинг программы
- Dim Con As New ADODB.Connection
- With Con
- .Provider = "Microsoft.Jet.OLEDB.4.0"
- .ConnectionString = "Data Source=" & fil.Path & ";Extended Properties=Excel 8.0;"
- .Open
- End With
Листинг программы
- Workbooks.Open(fil.Path)
Листинг программы
- Workbooks.Open(fil.Path, UpdateLinks:=False, ReadOnly:=True)
Листинг программы
- Workbooks.Open(fil.Path, UpdateLinks:=False, ReadOnly:=True).RunAutoMacros xlAutoClose
Решение задачи: «Запрос наличия листа в закрытой книге»
textual
Листинг программы
- rs.find "TABLE_NAME='" & nameList & "$'"
- If Not rs.EOF Then FindList = True
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д