powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Борьба с эксель
8 сообщений из 8, страница 1 из 1
Борьба с эксель
    #39449432
l-evgene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.
Нужно программно открыть-закрыть несколько экселевских файлов. Иногда эксель при этом выкидывает сообщения. Самое популярное: "эта книга содержит связи...". Прога при этом, естественно виснет.
Есть ли способ перехватить из VBA это сообщение и обработать его?
...
Рейтинг: 0 / 0
Борьба с эксель
    #39449491
guest_rusimport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Борьба с эксель
    #39449505
l-evgeneвыкидывает сообщения. Самое популярное: "эта книга содержит связи...". Прога при этом, естественно виснет. Метод Workbooks.Open имеет кучу аргументов, в т.ч. UpdateLinks и ReadOnly. Поиграйтесь, возможно помогут.
l-evgeneНужно программно открыть-закрыть несколько экселевских файлов. Вы бы объяснили подробнее задачу. Из Акса запросом можно получить данные из любой ячейки или смежного диапазона ячеек с первого листа, даже не зная его имени или с любого листа, если имя известно.
...
Рейтинг: 0 / 0
Борьба с эксель
    #39449553
l-evgene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Анатолий ( Киев )Вы бы объяснили подробнее задачу. Из Акса запросом можно получить данные из любой ячейки или смежного диапазона ячеек с первого листа, даже не зная его имени или с любого листа, если имя известно.Подробнее: 100 файлов нужно открыть, найти в каждом какой-то текст и закрыть. Хочется сделать это в невидимом режиме, чтобы перед глазами не мигало. Но если эксель при этом выдает сообщение или диалоговое окно, прога ждет на него ответа, создается впечатление, что повисла.
UpdateLinks помог в одном случае. В другом случае (формат эксель 95) я отключил приглашение сохранить файл (причем для этого использовал и "Workbooks(strИмяФайла).Close acSaveNo" и "Application.DisplayAlerts = False"). Так он без спросу вывалил диалоговое окно "сохранить как". Опять тормоз, народ обижается.
Вобщем, первоначальная задача - именно открыть-закрыть 100 файлов и, если в одном из них есть "тормоз", остановить прогу, пусть даже с ошибкой. Чтобы проинформировать юзера, что у него кривой файл.
...
Рейтинг: 0 / 0
Борьба с эксель
    #39449627
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
l-evgeneесли эксель при этом выдает сообщение или диалоговое окноТак отключить... делов-то. А ещё лучше - обращаться к данным через ОДБЦ, он точно дурацких вопросов не задаёт...
...
Рейтинг: 0 / 0
Борьба с эксель
    #39449647
l-evgene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akinal-evgeneесли эксель при этом выдает сообщение или диалоговое окноТак отключить... делов-то. А ещё лучше - обращаться к данным через ОДБЦ, он точно дурацких вопросов не задаёт...ОДБЦ на самом деле позволяет работать с эксельным файлом, как будто ты его открыл и ручками стучишь?
Не подскажете, где почитать?
...
Рейтинг: 0 / 0
Борьба с эксель
    #39450575
l-evgene100 файлов нужно открыть, найти в каждом какой-то текст и закрыть.
Код: vbnet
1.
2.
s = "SELECT * FROM A1:T65000 IN 'Путь к файлу XLX' [Excel 8.0; HDR=Yes;ImEx=1]"
Set rs = CurrentDB.OpenRecordset(s)

Этот код открывает Recordset на основе диапазона ячеек из 20 столбцов и 65000 строк на первом листе в XLX файле. Данные в первой строке используются как имена полей. Незадействованные строки внизу и столбцы справа игнорируются.
Для XLSX и XLSM параметр "Excel 8.0" нужно заменить на "Excel 12.0 XML", а для XLSB - на "Excel 12.0".
Если все ваши файлы имеют одинаковую структуру и "какой-то текст" ищется в конкретных столбцах, то текст запроса нужно изменить так, что он будет возвращать только нужные поля и добавить условие отбора. Иначе искать значение можно методами FindFirst, FindNext и т.д.
Если данные начинаются с 1-й строки, то вместо "HDR=Yes" укажите "HDR=No". Тогда имена полей будут иметь вид F1,F2 и т.д.
...
Рейтинг: 0 / 0
Борьба с эксель
    #39458729
l-evgene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Анатолий ( Киев ), спасибо.
Не совсем в тему, но тоже очень интересно
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Борьба с эксель
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]