Форум программистов, компьютерный форум, киберфорум
VBScript/JScript/WSH/WMI/HTA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/34: Рейтинг темы: голосов - 34, средняя оценка - 4.53
4 / 4 / 1
Регистрация: 09.10.2019
Сообщений: 246
1

Правильное закрытие Excel в vbs

24.03.2021, 14:50. Показов 6219. Ответов 14

Author24 — интернет-сервис помощи студентам
Здравствуйте!

На vbs надо открыть таблицу Excel, прочитать данные, обработать, и выйти.
Начал с простого - открытия и закрытия файла(таблицы).
И заметил, что хотя скрипт заканчивает работу, сам процесс EXCEL.EXE *32 остаётся в памяти. Причём, сколько раз запустишь скрипт, столько копий и останется.
Сам скрипт (то, что закоментировано, это различные варианты таки прекратить эту гнусную традицию):

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Set xls = CreateObject("Excel.Application")
Set oWorkBook = xls.workbooks.open(Filename,,True)              
 
If Err.Number <> 0 Then 
    MsgBox "Err.Description" & Err.Description
    Quit
End if
 
' oWorkBook.Close           
Set oWorkBook = Nothing 
' oWorkBook.Close           
'Set oWorkBook = Nothing    
' xls.Close
' Set oWorkBook = Nothing
' Set xls = Nothing
xls.Quit
'xls.Close
Подскажите, пожалуйста. На просторах нашёл только борьбу, но не рецепт.
Excel 2016.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.03.2021, 14:50
Ответы с готовыми решениями:

Правильное закрытие Excel
Вот так я открываю xls файл Excel.Application app = new Excel.Application(); ...

Правильное закрытие программы
Здравствуйте. Есть такая программа на андроид...

Правильное закрытие пагинации
Всем привет! Есть сайт афоризмов - http://aforizmus.com/ как видите внизу страницы (на...

Правильное закрытие соединения с БД
Приветствую! Мужики, подскажите, как правильно? Так: if ($result-&gt;num_rows == 0){ ...

14
help
4417 / 4073 / 809
Регистрация: 13.04.2015
Сообщений: 8,911
24.03.2021, 15:02 2
Лучший ответ Сообщение было отмечено Тормоз как решение

Решение

Visual Basic
1
2
3
4
oWorkBook.Close,false           
Set oWorkBook = Nothing 
xls.Quit
Set xls = Nothing
Добавлено через 47 секунд
Цитата Сообщение от Тормоз Посмотреть сообщение
Quit
Случае ошибки у тебя происходит выход без закрытия приложения.
1
4 / 4 / 1
Регистрация: 09.10.2019
Сообщений: 246
24.03.2021, 15:32  [ТС] 3
Спасибо, но не помогло.
В Диспетчере задач так и висел Excel, а при попытке закрыть принудительно сообщение:
Ошибка: Сбой при удалённом вызове процедуры
на строке:
oWorkBook.Close, False

Добавлено через 16 минут
Сделал закрытие так, и вроде всё получилось:

Visual Basic
1
2
3
4
5
xls.DisplayAlerts = False
oWorkBook.Close, False
Set oWorkBook = Nothing 
xls.Quit
Set xls = Nothing
0
help
4417 / 4073 / 809
Регистрация: 13.04.2015
Сообщений: 8,911
24.03.2021, 15:38 4
Цитата Сообщение от Тормоз Посмотреть сообщение
xls.DisplayAlerts = False
Надеюсь, знаешь, что это значит?
1
4 / 4 / 1
Регистрация: 09.10.2019
Сообщений: 246
25.03.2021, 07:53  [ТС] 5
Да.
Мне не надо сохранять исходный файл.
0
help
4417 / 4073 / 809
Регистрация: 13.04.2015
Сообщений: 8,911
25.03.2021, 11:18 6
Цитата Сообщение от Тормоз Посмотреть сообщение
Да.
Мне не надо сохранять исходный файл.
Нет. Совсем не то.
1
малоболт
1315 / 499 / 211
Регистрация: 30.01.2020
Сообщений: 1,219
25.03.2021, 13:05 7
Тормоз Может так попробовать?
Visual Basic
1
2
3
4
5
6
7
8
9
Set xls = CreateObject("Excel.Application")
xls.visible = True ' Добби покажет открытый файл
Set oWorkBook = xls.workbooks.open(FullFileName,,True)              
 
wscript.Sleep 5000 'Подождем 5 секунд. Пусть хозяин увидит
 
oWorkBook.Close           'Закроем
xls.Quit ' Выйдем из Excel. Вот сейчас он пропадёт из панели задач.
Set oWorkBook = Nothing : Set xls = Nothing
1
6325 / 2752 / 1070
Регистрация: 06.06.2017
Сообщений: 9,351
25.03.2021, 16:34 8
Цитата Сообщение от I can Посмотреть сообщение
oWorkBook.Close,false
Это что за синтаксис такой не vb-шный?
1
4 / 4 / 1
Регистрация: 09.10.2019
Сообщений: 246
02.04.2021, 09:26  [ТС] 9
Цитата Сообщение от I can Посмотреть сообщение
Нет. Совсем не то.
Уточню, мне не надо сохранять исходный файл, поэтому мне не нужны предупреждения, и не нужен диалог с Excel
Извините за паузу, болел.

Цитата Сообщение от FlasherX Посмотреть сообщение
Это что за синтаксис такой не vb-шный?
Это vbs. Те же яйца, вид сбоку.

Цитата Сообщение от Punkt5 Посмотреть сообщение
xls.visible = True ' Добби покажет открытый файл
не нужен диалог с Excel, всё должно быть тихо и без вопросов.

Всем спасибо за участие и соучастие, всем здоровья!
0
6325 / 2752 / 1070
Регистрация: 06.06.2017
Сообщений: 9,351
02.04.2021, 11:29 10
Цитата Сообщение от Тормоз Посмотреть сообщение
Это vbs. Те же яйца, вид сбоку.
Какой ещё вид сбоку? Это ошибка и неверный синтаксис. Такое не будет работать на vb(a,s).
1
4 / 4 / 1
Регистрация: 09.10.2019
Сообщений: 246
02.04.2021, 13:04  [ТС] 11
Работает же.
0
6325 / 2752 / 1070
Регистрация: 06.06.2017
Сообщений: 9,351
02.04.2021, 13:11 12
Не верю. Должно выдать "Недопустимое число аргументов или присвоение значения свойства:".
0
4 / 4 / 1
Регистрация: 09.10.2019
Сообщений: 246
02.04.2021, 13:14  [ТС] 13
Специально посмотрел в работающем коде:

Visual Basic
1
oWorkBook.Close, False
Добавлено через 48 секунд
Цитата Сообщение от FlasherX Посмотреть сообщение
Не верю. Должно выдать "Недопустимое число аргументов или присвоение значения свойства:".
Ничем помочь больше не могу, извините.
0
6325 / 2752 / 1070
Регистрация: 06.06.2017
Сообщений: 9,351
02.04.2021, 13:22 14
Фантастика. Не знаю, как этот рудимент может не выдать ошибки. В любом случае , False тут делать нечего.
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
37291 / 20725 / 4272
Регистрация: 12.02.2012
Сообщений: 34,111
Записей в блоге: 14
01.05.2021, 16:23 15
https://docs.microsoft.com/ru-... book.close
0
01.05.2021, 16:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.05.2021, 16:23
Помогаю со студенческими работами здесь

Правильное закрытие курсора
Как правильно закрыть Cursor? Если делать так: .... String from = {&quot;name&quot;,&quot;count&quot;}; intto...

Правильное закрытие окна по ESC
Есть прекрасно работающий код, который я нашел где-то в дебрях инета. // Это надо прописать в...

Правильное открытие, закрытие соединения
Приветствую. Знаю что этот вопрос уже затёрт до дыр, знаю что соединение требует много ресурсов....

Правильное закрытие страниц сайта
Интересует следующее. Стоит скрипт который все внешние ссылки реализовывает в вид...

Правильное закрытие от индексации Внешних ссылок
Правильное закрытие от индексации ВС, для этого мне ненужную ссылку на сайте оформлять так?

правильное закрытие файла открытого в конструкторе (деструктор, конструктор копирования, перемещения, присваивания)
добрый вечер! изучаю &quot;Правило трёх&quot; и &quot;Правило пяти&quot;. если у меня в полях класса указатель на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru