В диспетчере задач много процессов excel

На днях столкнулся я с такой задачей. Обратился пользователь с жалобой: «Открываю два документа в Excel, начинаю работу и через некоторое время все начинает жутко тормозить». Странно…компьютер свежий, жесткий диск заменили на SSD, оперативную память увеличили до 8 ГБ. Для офисного ПК со средними задачи то что нужно. Но факт остается фактом, Excel загружает процессор на 100%…тормоза есть и это явно прослеживается.

К слову, на ПК windows 10, Excel 2016. Подключаюсь к компьютеру и пытаюсь воспроизвести проблему, и да, вот они жуткие глюки в частности после использования комбинации «копировать-вставить«.

Обращаемся к Диспетчеру задач и видим, что при попытке скопировать элемент в буфер обмена, процессор загружает на 100% и не отпускает пока принудительно не завершишь работу документов Excel.

Проблема локализована, причины торможения найдены, но буду честным, увидел я такое впервые. Обратился на форум microsoft и решение было найдено. Дело кроется в аппаратном ускорении обработки изображений.

Открываем Excel — Файл-Параметры-Дополнительно — Находим раздел Экран- Установить галочку в пункте: Отключить аппаратное ускорение обработки изображения

Excel загружает процессор на 100%

Нажимаем кнопку «ОК» и закрываем Excel.

  • Следующим пунктом идет отключение — «Анимированных элементов управления«
  • Открываем Компьютер — Свойства — Дополнительные параметры системы
Excel загружает процессор на 100%
  • Вкладка «Дополнительно» — раздел «Быстродействие» — Параметры — Снимаем галочку «Анимированные элементы управления и элементы внутри окна«
3

В открытых окнах нажимаем кнопки «Применить» и «ОК«, закрываем свойства системы и наслаждаемся адекватной работы Excel. Решение рабочее, проверено на многих компьютерах, после всех манипуляций глюки пропадают и процессор перестает нагружаться.

Видео инструкция по вышеописанному материалу:

На этом все. Надеюсь кому-то эта статья окажется полезной.

Спасибо за внимание.

Пишите комментарии, подписывайтесь на блог, буду регулярно размещать интересные задачи, которые возникают в процессе работы.

Всем добра!

Even when my app closes and finishes, when I watch on my task manager -> processes, there
are many excel processes which even prevent my computer from shutting down.

Here is my code:

 private void write_data_to_excel(byte[] input)
 {
    FileStream f = File.OpenWrite("StocksData.xls");
    f.Write(input, 0, input.Length);
    f.Close();
 }

Another possible method who causes this:

private void get_stocks_data()
{
   byte[] result;
   byte[] buffer = new byte[4096];
   try
   {
      WebRequest wr = WebRequest.Create("http://www.tase.co.il/TASE/Pages/ExcelExport.aspx?sn=none&enumTblType=allShares&Columns=noneColumns&Titles=noneTitles&action=1&SubAction=0&GridId=33&CurGuid={0BDA5110-EF93-44CB-A0F0-468C6F502B51}&ExportType=1");
      using (WebResponse response = wr.GetResponse())
      {
         using (Stream responseStream = response.GetResponseStream())
         {
            using (MemoryStream memoryStream = new MemoryStream())
            {
               int count = 0;
               do
               {
                  count = responseStream.Read(buffer, 0, buffer.Length);
                  memoryStream.Write(buffer, 0, count);
               } while (count != 0);
               result = memoryStream.ToArray();
               write_data_to_excel(result);
            }
         }
      }
   }

My code also contains:

xlApp = new Excel.Application();
xlWorkBook = xlApp.Workbooks.Open(file, 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "t", false, false, 0, true, 1, 0);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

These methods are called priodicly…
What am I not closing or…?

Уважаемые специалисты, не могу решить такую проблему: запускаю файлы эксель в течение дня из окон винды, тотал командер, из почты, все загружаются нормально. Но в определённый момент винда зачем то запускает ещё одну копию экселя и открывает их там. Как следствие — не обновляющиеся ссылки между файлами. Причём не всегда сразу замечаю, когда запустилась вторая копия и сколько файлов в нее попало. Приходится закрывать вторую копию и открывать файлы либо непосредственно из экселя, либо перетаскивая файл в его окно. Постоянно открывать файлы из экселя неудобно, так как используется куча разных ярлыков на сетевые ресурсы. Причём иногда просто повторный запуск того же файла уже происходит правильно. Такая проблема была в 2003 и в 2007 офисах.
Сегодня доломал окончательно. Теперь вообще каждый открываемый файл запускает отдельную копию экселя….


Вообще я ни разу не сталкивался с тем чтобы новый процесс Excel запускался при открыти файла с уже открытым Excel. Для того чтобы он запустился нужно его запустить либо ярлыком для Excel, либо Пуск/Программы/MS Office/Excel, при этом открывается пустая книга Excel. Насколько я понимаю MS это сделал специально, например, для отображения двух книг excel на разных мониторах. Для определения почему у тебя случайно срабатывет эта функция нужно более подробное описание что ты делаешь.


запускаю винду, открываю через проводник папку с файлами, запускаю файлы. Запускаю диспетчер задач и вижу, что количество запущенных процессов EXCEL.EXE равно количеству открытых файлов. Пожалуй, дело тут не в екселе, а в глюке интерпретатора команд винды. Насколько я понимаю, система должна при запуске файла сначала проверить, не запущена ли уже программа перед повторным её открытием. Почему-то не видит. В общем, зря сюда пожаловался :)


Здравствуйте.

Панель управления-Свойства папки-Типы файлов. Находите файлы Excel и для каждого:
Дополнительно-Просматривать в том же окне

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…
www.excel-vba.ru
Просто СПАСИБО [+оказать+]
Считаешь СПАСИБО мало? Яндекс.Деньги: 41001332272872; WM: R298726502453


Цитата: Prist от 07.07.2010, 11:19
Здравствуйте.

Панель управления-Свойства папки-Типы файлов. Находите файлы Excel и для каждого:
Дополнительно-Просматривать в том же окне

Спасибо! Вот уж действительно, век живи, век учись.



Знания недостаточно, необходимо применение. Желания недостаточно, необходимо действие. (с) Брюс Ли



Может быть подскажете, почему пункт «Просматривать в том же окне» может быть неактивен? Я не знаю уже, как это получилось, но у XLS всё нормально, а у XLSX неактивен. Я уже и удалял его полностью и заново прописывал, бесполезно. И как результат — после открывания нескольких файлов XLSX вдруг вновь открываемый запускается в новом окне. Если его закрыть, активировать окно экселя, потом снова перейти в папку с файлом и снова его открыть — открывается как надо. Если бы опция «Просматривать в том же окне» действительно была выключена, то и первые файлы все запускались бы в разных окнах, так?


Прошу прощения, что возобновляю тему, но проблема продолжает существовать, и не только у меня. Постоянно приходят коллеги и жалуются, что «ссылки у открытых файлов не обновляются друг на друга при сохранении файлов и что при попытке вставить ссылку на соседний открытый файл это сделать не удаётся». Я посмотрел в диспетчер задач и увидел что копий программы по две и по три. Я не знаю, в какой момент это происходит. Я всё делаю ПРАВИЛЬНО. На рабочем столе есть ярлыки к файлам, запускаю их последовательно, всё грузится как надо, в одну программу. Проходит какое то время, в течение которого я закрываю и запускаю новые файлы. В очередной раз, сворачиваю все окна и запускаю очередной ярлык с раб. стола. И вижу, что он начинает загружаться в чистое окно экселя (обычно при открытии нового файла видно содержимое окна с уже открытым файлом), Это означает только одно: НАЧАЛОСЬ… Если мне скажут, что проверьте Свойства папки-Типы файлов, то я отвечу, что там всё так как должно быть, ведь если бы там было что-то не так, то я бы начиная с первых запусков файлов получал бы отдельные копии программы


RRS feed

  • Remove From My Forums
  • Вопрос

  • Здравствуйте!

    Иногда в диспетчере задач остаются незавершенные процессы winword и excel и продолжают потреблять процессор компьютера, хотя на панели задач их нет. В чем может быть причина и как решить проблему?

    MS Office 2007, MS Windows 7 Pro sp1

Все ответы

  • Добрый день.

    Задайте свой вопрос на форумах
    Answers


    Я не волшебник, я только учусь
    MCP, MCTS, CCNA. Если Вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку «Предложить как ответ» или «Проголосовать за полезное сообщение». Мнения, высказанные здесь, являются отражением моих личных
    взглядов, а не позиции работодателя. Вся информация предоставляется как есть без каких-либо гарантий.
    Блог IT Инженера, IT Reviews,
    Twitter.

  • Здравствуйте!

    Иногда в диспетчере задач остаются незавершенные процессы winword и excel и продолжают потреблять процессор компьютера, хотя на панели задач их нет. В чем может быть причина и как решить проблему?

    MS Office 2007, MS Windows 7 Pro sp1

    Причиной могут быть открытые документы MS Office в других приложениях (Internet Explorer, например). В этих случаях приложения MS Office работают как серверы COM (по-старому — OLE), обеспечивая фактическое отображение документов
    для этих приложений.


    Слава России!

    • Изменено

      8 февраля 2017 г. 16:08

  • Так всё закрыто на панели задач, а процесс в диспетчере есть.

  • Любая установка чего то у нас на компьютерах строжайше запрещена. Даже если кто-то что-то позволил себе, то это был бы единичный случай. Данная проблема возникала уже десятки раз у разных пользователей. Никаких add-ins у них нет и быть не может.

    • Изменено
      Minfin RO
      10 февраля 2017 г. 5:52

  • Victor Ivanidze, я побродил  по ссылкам, начиная с вашей, которую вы прислали и набрел на такую вещь —
    Fast closing Windows Explorer and Word, imediately one after another
    (first Windows Explorer and then Word) leaves WINWORD.EXE process running.  По-моему это то самое, что у меня! Потому что у нас многие пользователи так делают!

    Спасибо вам за первотолчок! Буду теперь думать как заставить пользователей не пользоваться этой функцией

  • Использовал эту статью — http://winlined.ru/articles/nastrojka_paneli_predvaritelnogo_prosmotra_v_provodnike_windows_vista.php

    Отключил у всех пользователей возможность просмотра документов. Посмотрю будут ли появляться зависшие процессы.

  • Тоже была эта проблема. Причем документ, с которым выполнялась работа до закрытия word, оставался занят и повторно его можно было открыть только на чтение (если вручную winword из процессов не удалить). Как я понял, проблема
    в эксплорере, а именно, в панели предварительного просмотра. Помогло  следующее «панель управления->свойства папок->вид->восстановить умолчания». 

СyberSpec

Кибернетик

465 / 89 / 12

Регистрация: 10.04.2009

Сообщений: 424

1

12.01.2012, 17:21. Показов 10042. Ответов 9

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Приветствую.

Гружу данные с Excel’я и забавная штука получается. Выполняю код:

VB.NET
1
2
3
Dim Exc As Object
Exc = CreateObject("Excel.Application")
Exc.Workbooks.Open(filename).Activate()

Читаю данные так:

VB.NET
1
2
Dim row As DataRow
row("kodadr") = Exc.Cells(nRow, 1).Value

После чтения мне Excel не нужен, «закрываю» его так:

VB.NET
1
2
3
4
5
6
7
8
9
Try
     'тут как раз чтение данных
Catch ex As Exception
     'обработка исключений
Finally
     Exc.ActiveWorkbook.Close()
     Exc.Quit()
     Exc = Nothing
End Try

Внимание вопросы:
1 почему у меня в диспетчере задач приложение EXCEL.EXE остается даже после его закрытия и исчезает оттуда только после закрытия самой программы его открывшей?
2 как сделать так чтобы EXCEL.EXE завершался сразу после того как стал не нужен.

Объясните дураку.



0



749 / 548 / 48

Регистрация: 17.06.2010

Сообщений: 1,041

Записей в блоге: 1

12.01.2012, 17:59

2

эксель там весит какое-то время и потом уходит. судя по коду ликвидации переменной вроде все правильно.



1



Кибернетик

465 / 89 / 12

Регистрация: 10.04.2009

Сообщений: 424

13.01.2012, 09:35

 [ТС]

3

Цитата
Сообщение от gitarillo
Посмотреть сообщение

эксель там весит какое-то время и потом уходит. судя по коду ликвидации переменной вроде все правильно.

В случае если программа вылетает с необработанным исключением, то эксель не уходит и так и весит. По этому я и хочу сразу завершить процесс. Это возможно?



0



6043 / 3452 / 335

Регистрация: 14.06.2009

Сообщений: 8,136

Записей в блоге: 2

13.01.2012, 09:56

4

Цитата
Сообщение от СyberSpec
Посмотреть сообщение

По этому я и хочу сразу завершить процесс. Это возможно?

Убить процесс не проблема
https://www.cyberforum.ru/csha… ost1849212
прикол в том, что если пользователь при этом будет просматривать другие таблицы, то они тоже закроются



1



Кибернетик

465 / 89 / 12

Регистрация: 10.04.2009

Сообщений: 424

13.01.2012, 10:00

 [ТС]

5

Цитата
Сообщение от nio
Посмотреть сообщение

не подходит тогда. а есть же сборка мусора .net, или это не мой случай? я про нее мельком слышал.



0



6043 / 3452 / 335

Регистрация: 14.06.2009

Сообщений: 8,136

Записей в блоге: 2

13.01.2012, 10:07

6

Цитата
Сообщение от СyberSpec
Посмотреть сообщение

а есть же сборка мусора .net, или это не мой случай? я про нее мельком слышал

есть такое, но в твоем случае не поможет.



1



MLF

27 / 27 / 4

Регистрация: 14.02.2012

Сообщений: 135

06.04.2013, 03:58

7

извиняюсь, что поднимаю тему годичной давности, но искал ответ для себя и нашёл решение:
xlApp это объект Microsoft.Office.Interop.Excel.Application

VB.NET
1
2
3
4
5
6
7
8
9
        xlApp.Quit()
        Try
            System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp)
            xlApp = Nothing
        Catch ex As Exception
            MsgBox(ex.Message)
        Finally
            GC.Collect()
        End Try

всё работает — процесс исчезает и такой способ не закрывает другие процессы Excel — только созданный программой.



1



27 / 27 / 4

Регистрация: 14.02.2012

Сообщений: 135

08.07.2013, 18:05

9

Цитата
Сообщение от qwerro
Посмотреть сообщение

Хех
Во первых решение я уже нашёл и отписал его постом выше.
Во вторых первая ссылка — на эту же тему…, а по второй советуют убивать процесс, что не правильно.



0



7 / 7 / 1

Регистрация: 16.12.2012

Сообщений: 35

08.07.2013, 18:07

10

Да,ошибочка)
ссылки скопировал из своего архива не проверив



0



 
Ольга
 
(2004-12-10 18:07)
[0]

Создаю объект:
Excel:= CreateOleObject(«Excel.Application»);
Excel.WorkBooks.Open(NameFileExl);
Excel.Visible:=True;

Закрываю приложение EXCEL стандартным способом, смотрю в «Диспетчере» — процесс остается висеть.

Сколько раз запускаю программу — столько процессов создается.
Как их не плодить? Или хотя бы как их программно убивать?


 
Суслик ©
 
(2004-12-10 18:13)
[1]

excel.quit?


 
VMcL ©
 
(2004-12-10 18:19)
[2]

>>

Ольга  (10.12.04 18:07)

Если под стандартным способом понимается нажатие на крестике, то см. [1] + Excel := Unassigned;


 
DiamondShark ©
 
(2004-12-10 18:27)
[3]

Неправда.

Если эксель закрыть, когда в программе есть ссылка на него (или на любой вложенный объект), то да, процесс экселя остаётся.
Но он завершается как только освободить все ссылки на него.

Остаться «висеть» он может только в одном случае: если приложение завершено некорректно и ссылки не были правильно освобождены.


 
Leonid Troyanovsky
 
(2004-12-10 20:13)
[4]

> DiamondShark ©   (10.12.04 18:27) [3]
> Неправда.

Чья неправда?
Твои доводы не противоречат ни одному из
3 вышеидущих утверждений.


С уважением, LVT.


 
GanibalLector ©
 
(2004-12-10 20:40)
[5]


> Закрываю приложение EXCEL стандартным способом, смотрю
> в «Диспетчере» — процесс остается висеть.

Я тоже смотрю…пусто ;)


 
DiamondShark ©
 
(2004-12-10 20:44)
[6]


> Leonid Troyanovsky   (10.12.04 20:13) [4]

И как мне теперь с этим жить?


 
Leonid Troyanovsky
 
(2004-12-10 21:11)
[7]


> DiamondShark ©   (10.12.04 20:44) [6]
> И как мне теперь с этим жить?

Как положено. Указать чья неправда,
чего словами просто так кидаться.


С уважением, LVT.


 
GuAV ©
 
(2004-12-10 21:12)
[8]

если Excel — глобальноная переменная то Excel := Unassigned; , если локальная, то не знаю даже чего так.


 
DiamondShark ©
 
(2004-12-10 21:13)
[9]


> Leonid Troyanovsky   (10.12.04 21:11) [7]

Неправда, что плодятся.
Не плодятся, а запускаются ровно столько, сколько нужно.
Вот.


 
GanibalLector ©
 
(2004-12-10 21:14)
[10]

2 DiamondShark

> Если эксель закрыть, когда в программе есть ссылка на
> него (или на любой вложенный объект), то да, процесс
>экселя остаётся.
> Но он завершается как только освободить все ссылки на
> него.

Что Вы имеете ввиду под словом «ссылка»?Подробнее плз.


 
DiamondShark ©
 
(2004-12-10 21:19)
[11]


> GanibalLector ©   (10.12.04 21:14) [10]

А самому в словарь заглянуть?

ссылка — значение, уникально идентифицирующее объект или переменную во время выполнения;

Подробнее, извиняюсь, не могу: подробный ликбез денег стоит.


 
GanibalLector ©
 
(2004-12-10 21:26)
[12]

Кстати,только что поигрался с глоб.локальными переменными для такого кода.

XLApp:=CreateOleObject("Excel.Application");
XLApp.Visible:=true;
XLApp.WorkBooks.Open("C:test.xls");
XLApp.WorkBooks[1].WorkSheets[1].Name:="test ;)";
XLApp.WorkBooks[1].Sheets[1].Cells[3,2]:="GanibalLector";

так вот,если XLApp локальная,то после закрытия Excel его процесс сразу уничтожается,а если глобальная,то висит до закрытия программы.
З.Ы.Чудеса,однако…никогда б не подумал


 
GanibalLector ©
 
(2004-12-10 21:35)
[13]

А если использовать глобально XLApp и в конец кода добавить XlApp:=Unassigned то тоже процесс умирает.
З.Ы.Вроде разобрались ;)


 
GuAV ©
 
(2004-12-10 21:43)
[14]

GanibalLector ©   (10.12.04 21:26) [12]
З.Ы.Чудеса,однако…никогда б не подумал

И где чудеса ? Честно никогда не использовал глобальные XLи. Просто знаю что варианты как строки иницилизируются Unassigned и финализируются при выходе из области видимости.


 
Ольга
 
(2004-12-11 13:42)
[15]

Пишет автор вопроса.
Да, переменная Excel у меня глобальная, но объявляется не в главном модуле, а в другом, связанным с главным по uses.
Excel:=UnAssigned прописано в главном на закрытие формы.
С вашей помощью нашла 2 выхода:
1. Перенести объявление Exсel: OleVariant; на главную форму.
2. Сделать Exсel локальной.

Оба работают, всем спасибо!

Но, чтобы расставить все точки над «и»:
Так и не поняла — почему я не могу очистить глобальную переменную, объявленную в связанном модуле, из главного?

И еще. Советы типа Excel.Quit;
Зачем нужна эта команда (пользователь ведь сам должен определить, когда закрыть файл) и на какое событие ее назначать?


 
aus
 
(2004-12-11 13:59)
[16]

>Так и не поняла — почему я не могу очистить глобальную переменную, объявленную в связанном модуле, из главного?

Глобальную переменную можно использовать в любом модуле (и «очистить» в том числе).
А как ты определяешь, какой модуль главный, а какой связанный?


 
Ольга
 
(2004-12-11 14:02)
[17]

Главным я назвала тот, к которому привязано приложение через Main Form


 
aus
 
(2004-12-11 14:19)
[18]

Назови его как хочешь, он главнее не станет, они вполне равноправны.
Но это уже не по теме вопроса…


 
Digitman ©
 
(2004-12-11 14:29)
[19]


> Ольга

видишь ли, каждый модуль имеет раздел interface

если ты объявишь некий идентификатор в этом разделе, то все прочие модули будут «видеть» этот идентификатор и будут способны его использовать, если сошлются на него в uses одного из своих разделов

чаще говорят, что «идентификатор, объявленный в разделе interface некоего модуля, имеет глобальную область видимости для всех модулей данного проекта»


 
GuAV ©
 
(2004-12-11 14:48)
[20]

Ольга   (11.12.04 13:42) [15]
Так и не поняла — почему я не могу очистить глобальную переменную, объявленную в связанном модуле, из главного?

Код «не-главного» модуля в студию. И заодно, что происходит при выходе из приложения.

Завершение процесса должно происходить в финализации модуля, где объявлен Excel, или на строке Excel := Unassigned;


 
Ольга
 
(2004-12-12 11:18)
[21]

По просьбе уважаемого GuAV Привожу листинги 2 модулей.

Unit Main Form:
unit Main;

interface

                             uses  
Windows, Messages, SysUtils, Classes, Graphics, ontrols, Forms, Dialogs, Db, ADODB, Grids, DBGrids, StdCtrls, ExtCtrls, ComCtrls, Buttons, ToolWin, Menus, Variants, Excel2000;

type
 TFMain = class(TForm)
 SpeedButton1: TSpeedButton;
 SpeedButton2: TSpeedButton;
 …

var
 FMain: TFMain;

implementation

uses Report;

procedure TFMain.SpeedButton2Click(Sender: TObject);
begin
 FormReport;
end;

procedure TFMain.SpeedButton1Click(Sender: TObject);
begin
  Close;
  Excel:=Unassigned;
end;

end.

Unit Report Form:

unit Report;

interface

uses   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,  StdCtrls, ExtCtrls, Menus, Db, ADODB, Grids, DBGrids, ComCtrls, ComObj,  ActiveX, Excel2000, Variants, idGlobal;

var
 Excel, Sheet: Variant;
 procedure FormReport;

 implementation

uses Main;

procedure FormReport;
begin
  DecodeDate(rabdate,y,m,d);
  Try
         Excel:= CreateOleObject(«Excel.Application»);
         Excel.WorkBooks.Open(«c:tmp1.xls»);
  except    
         Excel.Quit;
         Excel:=UnAssigned;
  end;
  Excel.DisplayAlerts:=False;
  Excel.SheetsInNewWorkBook:=1;
  Sheet:=Excel.ActiveWorkBook.WorkSheets[1];
  Sheet.Cells[4, 2]:= DateToStr(rabdate);
  ….
  Excel.Visible:=True;
end;

end.

Так где здесь косяк?


 
Piter ©
 
(2004-12-12 13:14)
[22]

Нету никакого косяка, но после того как окошко Excel»а появилось:

Ольга   (12.12.04 11:18) [21]
Excel.Visible:=True;

какие проблемы? Это окошко нужно закрыть крестиком, чтобы не было процесса!

Или у тебя код просто не доходит до Excel.Visible:=True. Что такое отладчик знаем?


 
Суслик ©
 
(2004-12-12 13:28)
[23]

я бы еще посветовал сделать Excel.UserControl := True; рядом с visible := true

Атрибут UserControl весьма загадочен. Его роль не совсем соответствует описанию. В частности _иногда_ если создать файл excel, сохранить и оставить открытым, то если из explor  открыть сохраненный файл, то оба окна ексель (и новое и то, где октрыт исходный файл) становятся невидимыми и снять их можно только через список задач. Данная особенность исправлялась только UserControl := True. Почему? Не знаю — из документации это не следует.


 
GuAV ©
 
(2004-12-12 14:06)
[24]

Ольга   (12.12.04 11:18) [21]

Ошибку у меня повторить не получилось. (D7, Office XP SP2) Завершение XL происходит в фиинализации Excel и Sheet.

Так, если выходить через ExitProcess, то процесс остаётся в памяти, но если добавить Excel:=Unassigned; Sheet:=Unassigned; то не остаётся.

Нужно искать или причину невыполнения финализации
Report; или место где затираются Excel и Sheet. В приведенном коде этого нет.

В коде есть другая ошибка.

> Try
>         Excel:= CreateOleObject(«Excel.Application»);
>         Excel.WorkBooks.Open(«c:tmp1.xls»);
>  except    
>         Excel.Quit;
>         Excel:=UnAssigned;
>   end;

Что Вы хотели добиться такой обработкой исключения ?
В случае исключения (например нет файла) оно будет обработано и следущий после этого код будет выполнен, хотя XL уже закрыт.


 
Ольга
 
(2004-12-13 10:21)
[25]

Так и не удалось мне разгадать сию загадку.
Программа до Excel.Visible:=True (добавила еще Excel.UserControl:=True) как положено доходит. Пользователь, как положено xls-файл закрывает, нажимает кнопку «Выход» (Excel:=Unassigned) в дельфовской программе, а процесс … остается.
Самое интересное, что повторить такое безобразие у меня самой не получилось. Выдернула из программы (она довольно навороченная) этот кусок — работает правильно.
Все, сдаюсь. Делаю переменную Excel локальной и ОК.
Всем спасибо!


На чтение 5 мин. Просмотров 9.8k. Опубликовано 03.09.2019

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

Тем не менее, даже самые надежные нативные приложения имели определенные проблемы на платформе Windows. Одна из самых странных проблем – высокая загрузка ЦП в Excel.

Мы позаботились о том, чтобы перечислить некоторые применимые решения ниже и помочь вам решить эту проблему как можно скорее.

Содержание

  1. Исправлена ​​высокая загрузка ЦП, вызванная Microsoft Excel
  2. Решение 1 – Обновление Office
  3. Решение 2 – Ремонт Excel
  4. Решение 3 – Удалить локальные файлы
  5. Решение 4 – Отключить сторонние приложения
  6. Решение 5. Попробуйте использовать Excel в безопасном режиме и отключите надстройки
  7. Решение 6 – Переустановите Excel

Исправлена ​​высокая загрузка ЦП, вызванная Microsoft Excel

  1. Обновление Office
  2. Ремонт Excel
  3. Удалить локальные файлы
  4. Отключить сторонние приложения
  5. Попробуйте использовать Excel в безопасном режиме
  6. Переустановите Excel

Решение 1 – Обновление Office

Начнем с обновления пакета Office. Как вы, наверное, знаете, все обновления для Office идут через Windows Updates. Большинство из них – это исправления безопасности и мелкие исправления, но Microsoft обычно решает серьезную проблему, когда она возникает. И эта высокая загрузка ЦП, вызванная Excel, безусловно, является широко распространенной проблемой.

Если вы не знаете, как обновить Office, выполните следующие действия:

  1. Откройте Настройки .
  2. Выберите Обновление и безопасность .
  3. Выберите Центр обновления Windows .
  4. Проверьте наличие обновлений.

Также попробуйте запустить приложение от имени администратора. Вот как можно предоставить административные разрешения Excel:

  1. Нажмите правой кнопкой мыши ярлык Excel и откройте Свойства .
  2. Выберите вкладку Совместимость .
  3. Установите флажок « Запустить эту программу от имени администратора » и подтвердите изменения.
  • ЧИТАЙТЕ ТАКЖЕ: Excel Online не рассчитывает/не открывает [Лучшие решения]

Решение 2 – Ремонт Excel

Еще одно жизнеспособное решение в случае повреждения установки Excel – это исправить. Это предшествует переустановке, так как вы по крайней мере можете сделать это с системными ресурсами. После ремонта установки проблема должна быть решена. Имейте в виду, что это не так успешно, как чистая переустановка, но все же стоит попробовать.

Вот как восстановить Excel в несколько простых шагов:

  1. На панели поиска Windows введите «Управление» и откройте Панель управления .
  2. Откройте раздел Удалить программу в разделе Программы .
  3. Найдите Офис , щелкните его правой кнопкой мыши и выберите Восстановить .
  4. Подождите, пока установка будет восстановлена ​​и перезагрузите компьютер.

Если это не помогло, мы предлагаем перейти к следующим шагам.

  • ЧИТАЙТЕ ТАКЖЕ: как открыть несколько окон Excel одновременно

Решение 3 – Удалить локальные файлы

Помимо исправления, которое должно решить проблему высокой загрузки ЦП в Excel, лучше использовать ручной подход. Если есть проблема с формулами или конфигурацией Excel, удаление файлов конфигурации может резко снизить загрузку ЦП. После их удаления все должно вернуться в нормальное состояние.

Вот где искать и что удалять:

  1. Убедитесь, что Excel полностью закрыт.
  2. Перейдите к C: UsersYour UsernameAppDataRoamingMicrosoftExcel.
  3. Откройте папку Excel и скопируйте весь контент этой папки. Вставьте его в другое место, чтобы сделать резервную копию .
  4. Удалить все из папки Excel .
  5. Перезагрузите компьютер и попробуйте снова использовать Excel.

Решение 4 – Отключить сторонние приложения

Другой возможной причиной такого необычного поведения может быть фоновая активность некоторых сторонних приложений. Некоторые из них не влияют на работу Excel, а другие могут. Наиболее распространенные проблемы возникают из-за стороннего антивируса, но есть и другие сторонние приложения, которые могут замедлять работу Excel.

  • ЧИТАЙТЕ ТАКЖЕ: 6 лучших антивирусных программ Microsoft Word для защиты ваших документов

Вот почему мы предлагаем запустить ваш компьютер с чистой загрузкой. Вот как это сделать:

  1. В строке поиска Windows введите msconfig и откройте Конфигурация системы .
  2. На вкладке «Службы» установите флажок « Скрыть все службы Microsoft ».
  3. Нажмите « Отключить все », чтобы отключить все активные сторонние службы.
  4. Теперь перейдите на вкладку Автозагрузка и перейдите в Диспетчер задач .
  5. Запретить запуск всех программ с системой и подтвердить изменения.
  6. Перезагрузите компьютер.

Решение 5. Попробуйте использовать Excel в безопасном режиме и отключите надстройки

Еще один способ устранения высокой загрузки ЦП, вызванной Excel, – запустить его в безопасном режиме. С этим вы узнаете о возможном влиянии определенной надстройки или COM на выполнение приложения. Если загрузка процессора падает в безопасном режиме, мы рекомендуем отключать надстройки одну за другой с системой исключения, пока вы не выясните, какая из них вызывает проблему.

Вот как запустить безопасный режим в Excel:

  1. Нажмите и удерживайте клавишу CTRL и дважды щелкните ярлык Excel, чтобы запустить его в безопасном режиме.
  2. Если есть улучшения производительности, удалите надстройки, чтобы исправить ошибку.
  3. Также попробуйте удалить последние формулы.
  • ЧИТАЙТЕ ТАКЖЕ: Excel не открывает файлы, вместо этого отображается белый экран? Вы можете это исправить

Решение 6 – Переустановите Excel

Наконец, если ни одно из решений не сработало для вас, чистая переустановка должна решить эту проблему. Конечно, есть некоторые другие вещи, которые могут повлиять на это, но они находятся вне нашего понимания. Кроме того, мы предлагаем чистую переустановку, которая включает удаление всех локально сохраненных файлов, связанных с Excel. Для этого вам понадобится инструмент Fixit.

Выполните следующие действия, чтобы переустановить Excel на вашем компьютере:

  1. Сделайте резервную копию вашего лицензионного ключа.
  2. Загрузите инструмент Fixit здесь.
  3. Запустите инструмент и следуйте инструкциям.
  4. После этого перезагрузите компьютер и снова установите Office.

С учетом сказанного мы можем завершить эту статью. Надеюсь, это было информативное чтение, и мы помогли вам решить проблемы с высокой загрузкой процессора в Excel. И, если у вас есть какие-либо вопросы или предложения, не стесняйтесь сообщить нам в разделе комментариев ниже.

Понравилась статья? Поделить с друзьями:
  • В диаграмме ms excel названием выделенного объекта является
  • В диаграмме excel приведенной на рисунке легенда обозначена цифрой
  • В дательный падеж для excel
  • В группе инструментов выбрать необходимый тип диаграммы в excel
  • В графике excel накопление