Форум программистов, компьютерный форум, киберфорум
Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
Deymos

Опять наболевшая проблема с закрытием Excel, Предложеные способы не раб.

13.01.2008, 09:22. Показов 1780. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Эта проблема неоднократно поднималась на форуме, я все перечитал, но НИЧЕГО НЕ РАБОТАЕТ??!!

Не ну странно как-то, такого просто быть не может!!!
Проблема следующая: полсе использований функций из библиотеки Microsoft Excell XX Object Lib, в Excel нельзя открыть файлы, т.е. грузится Excel, а вместо рабочей области - пустое место, в котором скриншот рабочего стола
Такая бадья сохраняется только до закрытия моего приложения (в Access'е сделано).
Использую следующее:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
  Dim objExcel As Excel.Application
  Dim objExcelBook As Excel.Workbook
  Dim objExcelSheet As Excel.Worksheet
  Dim intRowCount, intColCount As Variant
  
  Set objExcel = New Excel.Application
  Set objExcelBook = objExcel.Workbooks.Open(OpenDialog.FileName)
  Set objExcelSheet = objExcelBook.Worksheets(1)
 
  intRowCount = Range('A1').SpecialCells(xlLastCell).Row
  intColCount = Range('A1').SpecialCells(xlLastCell).Column
 
  for x = 1 to intRowCount
    strNameCable = Trim(objExcelSheet.Cells(x, 2).Value)
    strParamCable = Trim(objExcelSheet.Cells(x, 3).Value)
    strTypeCable = Trim(objExcelSheet.Cells(x, 6).Value)
    CostWithoutNDS = objExcelSheet.Cells(x, 4).Value
    CostWithNDS = objExcelSheet.Cells(x, 5).Value
    ......
    'операции с данными
    ......
  next x
 
  objExcelBook.close
  objExcel.Quit
 
  Set objExcel = Nothing
  Set objExcelBook = Nothing
  Set objExcelSheet = Nothing
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.01.2008, 09:22
Ответы с готовыми решениями:

Опять-таки проблема с Excel (экспорт)
Люди, выручайте! Я прочитал уже наверное все советы по этой теме, но все-равно что-то не устраивает, то сообщение лишнее выскочит, то имя...

Проблема с закрытием
У меня в коде формы(пусть форма 1) встречается Me.Close, но перед таким закрытием в коде прописан переход в другую форму(пусть форма 2)....

Проблема с закрытием окна
import sys from PyQt5.QtWidgets import * from PyQt5.QtGui import * from PyQt5.QtCore import * from PIL import ImageQt, Image ...

12
0 / 0 / 0
Регистрация: 15.11.2007
Сообщений: 45
14.01.2008, 09:50
Здравствуйте !

попробуйте:
Visual Basic
1
2
3
4
5
6
7
objExcelBook.close False
'                  ^^^^^
objExcel.Quit 
' и в другом порядке:
Set objExcelSheet = Nothing
Set objExcelBook = Nothing 
Set objExcel = Nothing
как я понял вы открываете невидимый ексель, а без
параметра False при закрытии он может задать пользователю
какой-либо невидимый вопрос и повиснуть в ожидании ответа

По части порядка 'обнуления' переменных, может он и не важен, но чисто по иерархии так надежней и красивее, вспомните стек
и работу с ним

По крайней мере у меня все работает нормаьно и
никаких странностей не замечено
0
msd
14.01.2008, 10:41
И чтобы уж совсем 'добить', написать перед закрытием:
Visual Basic
1
objExcel.DisplayAlerts = False
Deymos
14.01.2008, 12:31
Нет, не помогло, в списке процессов осталось: EXCEL.EXE
Deymos
14.01.2008, 12:32
И исчезает лишь, когда закрываешь Access, т.е. приложение, откуда все это и вызывается.
0 / 0 / 0
Регистрация: 15.11.2007
Сообщений: 45
16.01.2008, 09:36
А какая у вас версия Excel ?
0
Deymos
17.01.2008, 05:49
У меня Office97, а в референсах ссылка на Microsoft Excel8.0 Object Library
0 / 0 / 0
Регистрация: 15.11.2007
Сообщений: 45
17.01.2008, 09:23
В принципе нормальная версия, все должно работать

Остается только тестировать и эксперементировать , попробуйте открывать видимый Ексель, может тогда, что-либо проясниться, также попробуйте не открывать а создавать файл, вообще просто создать и убить Ексель, ктати проблема может быть и в самом Екселе и в Виндах, попробуйте на другой машине.

Удачи !!!
0
0 / 0 / 0
Регистрация: 27.11.2007
Сообщений: 60
17.01.2008, 14:35
Была такая фишка... В ту субботу мучался три часа с подобным. Тоже Excel не вылазил из списка задач, до момента выгрузки приложения... Трабл был в следующем. Эксель - обьект. Рабочие книги, листы, ячейки - всё это тоже обьекты, но подчинённые главному - Экселю. И когда работаешь с ними, в качестве подчинения главному перед ними нужно ставить точку, иначе они так и останутся Excel'ем в списке задач, даже когда напишешь Excel.Quit и Set Excel = Nothing. Если же починённость укажешь, то всё будет пучком и достаточно будет закрыть только один обьект - Excel. И только двумя командами... И всё... Надеюсь, я понятно обьяснил и это поможет...

Удачи ! :-)
0
Deymos
19.01.2008, 09:41
Хм... Не знаю... Вообще-то я так и делал, но результат описан выше
Ну у меня стоит Office PRO и WindowsNT 4.0 WKS, может это из-за NT?
Deymos
23.01.2008, 13:25
Знаете что я еще заметил, что такая песня возникает только в том случае, если файл (WorkBook) открывается из файла, а если просто открыть Excel и чего-нибудь поделать, то все OK!
Странно, на правда ли? Есть предложения?
0 / 0 / 0
Регистрация: 15.11.2007
Сообщений: 45
24.01.2008, 11:46
А попробуйте после закрытия файла
Visual Basic
1
objExcelBook.close False
создать новую книгу
Visual Basic
1
objExcel.Workbooks.Add
закрыть ее и только потом ексель.
Или нечто в том-же духе
При работе с продуктами Микрософта,
иногда самые идиотские действия помогают
0
Ghost
29.01.2008, 14:09
Попробуй для Workbook или WorkSheet .Saved = True - надеюсь, поможет )))
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.01.2008, 14:09
Помогаю со студенческими работами здесь

проблема с закрытием экрана
Вот код: #include <iostream> int main() { using namespace std; int carrots; cout << "how many carrots do you...

Проблема с закрытием Word.ApplicationClass
vot u mena poyavilas udivitelnaya problema sozdayu WordApplicationClass .. vot Word.ApplicationClass AC = new...

Проблема с закрытием RS после INSERT
Вот такой код: ... AddUserSQL = "INSERT INTO users ( user_mail, user_pass, user_id) VALUES ( '" & user_mail & "' , '" & user_pass &...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru