Форум программистов, компьютерный форум, киберфорум
Наши страницы
Базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Deymos
1

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

13.01.2008, 09:22. Просмотров 1085. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.01.2008, 09:22
Ответы с готовыми решениями:

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

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

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

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

Проблема с закрытием InputStream: try { dataStream.close(); } catch (Exception e) {...}
сам inputStream получаю с урла, а проблема возникает при следующем коде: ...

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

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

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

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

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

СМА samsung клон Hansa (модели WF0500*), Блокировка люка. Проблема со щелчком и закрытием
Всем доброго дня. В последние несколько месяцев очень много обращений по...

Опять проблема с растягиваемой кнопкой
«Есть таблица из двух столбцов: в первом - многострочный тест, во втором -...

и опять директива {$H+}...проблема с длинными строками
задача код программы моей в общем, кажется у меня опять проблема с длинными...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru