|
Обработка Excel файлов из VB
|
|||
---|---|---|---|
#18+
Добрый вечер всем. Есть задача: программа должна прошарить все вложенные папки (корень задан), найти в каждой папке Excel и обработать его. Во время реализации столкнулся с 2мя проблемами: 1. при открытии Excel файла (установлен Excel 2007) появляется окно с уведомлением: Excel encountered an error and had to remove some formatting to avoid corrupting the workbook где есть кнопка "Ок". Программно данное окно удалось победить добавив: Код: vbnet 1.
Но в этом случае обработать файл не получается, т.к. не проходит условие Err.Number = 0 (обрабатываю другие ошибки) 2. уходя от первой ошибки, столкнулся с новой: A document with the name 'Filename.xls' is alredy open. You cannot open two documents with the same name, even if the documents are in different folders. Алгоритм следующий: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Вероятно, я как-то неправильно закрываю файл, что он остается висеть в памяти? Соответственно, необходима ваша помощь для решения данной проблемы. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 17:51 |
|
Обработка Excel файлов из VB
|
|||
---|---|---|---|
#18+
Код: vbnet 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 17:53 |
|
Обработка Excel файлов из VB
|
|||
---|---|---|---|
#18+
Код: vbnet 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 17:54 |
|
Обработка Excel файлов из VB
|
|||
---|---|---|---|
#18+
Yoph, Пользуйся On Error Resume Next, только если тебе действительны нужны приключения (или если ты передаешь код ошибки в процедуру - клиент, который получает и обрабатывает эту ошибку). Просто так On Error Resume Next писать - это все равно что закрывать от страха глаза при быстрой езде, будучи при этом водителем. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 22:45 |
|
Обработка Excel файлов из VB
|
|||
---|---|---|---|
#18+
YophOn Error Resume Next : objWorkBook = objExcel.Workbooks.Open(pFile, True)Хуже этой записи ничего не видел. Надеюсь, вы в курсе, что Resume Next распространяется не только на строчку objWorkBook=? YophНо в этом случае обработать файл не получается, т.к. не проходит условие Err.Number = 0 (обрабатываю другие ошибки)Вообще-то у всех ошибок номера разные. select case Err.Number и все такое. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 22:56 |
|
Обработка Excel файлов из VB
|
|||
---|---|---|---|
#18+
AntonariyYophOn Error Resume Next : objWorkBook = objExcel.Workbooks.Open(pFile, True)Хуже этой записи ничего не видел. Надеюсь, вы в курсе, что Resume Next распространяется не только на строчку objWorkBook=? В курсе. Данная строка кода была добавлена только, чтобы проверить уберётся ли окно с предупреждением. После проверки она была убрана. AntonariyYophНо в этом случае обработать файл не получается, т.к. не проходит условие Err.Number = 0 (обрабатываю другие ошибки)Вообще-то у всех ошибок номера разные. select case Err.Number и все такое. Я знаю. Но вопрос не в этом. Вопрос как правильно закрыть открытые ранее файлы Excel. Надо ли постоянно делать Код: vbnet 1. 2.
либо можно избежать постоянного закрытия приложения и лишь закрывать книги (тут вопрос тогда, что я делают не так)? Либо как программно закрыть\скрыть\нажать "Ок" в окне с предупреждением о том, что некоторое форматирование было убрано. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2012, 09:56 |
|
Обработка Excel файлов из VB
|
|||
---|---|---|---|
#18+
авторВопрос как правильно закрыть открытые ранее файлы Excel. Код: vbnet 1.
objExcel.Quit() когда все файлы закрыты. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2012, 10:24 |
|
Обработка Excel файлов из VB
|
|||
---|---|---|---|
#18+
Antonariy, Код: vbnet 1.
На всякий случай, чтобы не было лишних вопросов. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2012, 10:28 |
|
|
start [/forum/topic.php?fid=60&fpage=74&tid=2157626]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 150ms |
0 / 0 |