Excel много оперативной памяти

 

Opti1

Пользователь

Сообщений: 11
Регистрация: 24.05.2016

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

Приходится обробатывать порядка 2000 файлов под 5-8 млн строк, макрос их обробатывает все классно … было бы, но на 3-4 файле Ексель в оперативной памяти занимает 1,5 гигабайта и вся работа макроса да и всего компьютера зависает.

Вопрос: Как можно обнулить данные, которые занимает Ексель в оперативке ?

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

Наверное, для начала показать код (может и обрабатываемый файл), чтобы понять, где и что можно очистить.

 

Opti1

Пользователь

Сообщений: 11
Регистрация: 24.05.2016

Код большой и замудренный :) В коде очищать все таки ничего не нужно.

Файл обычный тектовый в три столбца и с вреднем 5 млн.строк.

Дело не в коде, и ни как на нем не завязано, вот простой смысл проблемы — откроейте ексель и в ячейке А1 напишите ну к примеру «999999» протяните его в строну ну ячеек на 30 и вниз ячеек на 200 тыщ вниз и посмотрите сколько будет занимать Ексель в оперативке, а теперь все эти заполеннные ячейки удалите и посмтрите сколько будет занимать ексель в оперативке — почти столько же!

В этом и вопрос

Изменено: Opti113.06.2016 13:44:58

 

RAN

Пользователь

Сообщений: 7091
Регистрация: 21.12.2012

#4

13.06.2016 13:56:05

Цитата
Opti1 написал: а теперь все эти заполеннные ячейки удалите
Код
Activesheet.usedrange
Цитата
Opti1 написал: и посмтрите сколько будет занимать ексель в оперативке

Изменено: RAN13.06.2016 16:45:49

 

Kuzmich

Пользователь

Сообщений: 7998
Регистрация: 21.12.2012

Какой размер файла подкачки?
Какая цифра стоит в файле C:WindowsSystem32Config.nt в параметре Files=

 

Opti1

Пользователь

Сообщений: 11
Регистрация: 24.05.2016

#6

13.06.2016 14:26:06

Цитата
RAN написал: Activesheet.usedrange

ООочень не значительно очищает память, в итоге все равно накапливается.

 

Opti1

Пользователь

Сообщений: 11
Регистрация: 24.05.2016

#7

13.06.2016 14:30:09

Цитата
Kuzmich написал: Какой размер файла подкачки?

Это не поможет — размер памяти в 1,5 Гб накапливается всего после 3 файлов, а у меня файлов более тысячи.

Изменено: Opti113.06.2016 16:46:24

 

The_Prist

Пользователь

Сообщений: 14181
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

#8

13.06.2016 14:38:55

Цитата
Opti1 написал: и посмтрите сколько будет занимать ексель в оперативке — почти столько же!

дело в том, что после удаления надо файл еще сохранить, а еще лучше закрыть. Тогда можно получить более реальные цифры по памяти. А пока не сохранили — за этим листом как бы зарезервирована память, если вдруг захочется Ctrl+Z нажать.

Цитата
Opti1 написал: Дело не в коде, и ни как на нем не завязано

если бы это было так — то и проблемы бы не было. А раз проблема есть — значит она в любом случае в коде. Другой вопрос, что возможно код никак не изменить, чтобы работал.
Из опыта: раз речь про текстовые файлы — стандартный Notepad(Блокнот) очень плохо работает с большими объемами в текстовых файлах. И если для считывания и записи используется стандартный метод а-ля «Input As #» — то это вполне может вызвать зависания. В то же время FSO может вполне корректно дозаписать данные в файл или считать построчно данные даже из больших файлов.

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Opti1

Пользователь

Сообщений: 11
Регистрация: 24.05.2016

#9

13.06.2016 15:34:03

Цитата
The_Prist написал:  раз проблема есть — значит она в любом случае в коде

Я же выше привел пример, что эта проблема ни коем образом не касается кода и является общей без какой либо привязке к работе макроса.

 

The_Prist

Пользователь

Сообщений: 14181
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

#10

13.06.2016 15:41:17

А ну тогда простите, устраняюсь. Если Вас не интересуют другие мнения по проблеме, кроме Вашего — не вижу смысла о чем-то с Вами рассуждения вести.

Цитата
Opti1 написал: Я же выше привел пример

пример чего? Не вижу толкового примера, подтверждающего, что проблема не в коде. То, что это Вы так думаете совершенно не значит, что так оно и есть. Но дело Ваше: не в коде, так не в коде. Удачи!

P.S. как уже писал — работал с такими объемами данных и как ни странно — почему-то проблемы с переполнением памяти были исключительно в коде, который не учитывал ограничения VBA на использование ресурсов ПК и особенностей открываемых файлов и все в том духе. И правка кода как правило помогала избегать этих проблем, если знать что надо в итоге получить. Но это всего лишь мой личный опыт. И он Вам явно не интересен. Вам надо одно — узнать как увеличить оперативку. Вот ответ: ставьте 64-битную ОС и такой же Excel. При этом ОС лучше максимальную — тогда ограничений по оперативке вообще не будет для ОС(до 124ГБ). И Excel сможет использовать 16Гб. Дерзайте!

Изменено: The_Prist13.06.2016 16:47:17

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Opti1

Пользователь

Сообщений: 11
Регистрация: 24.05.2016

The_pirst вы не в адеквате немного :)

 

The_Prist

Пользователь

Сообщений: 14181
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

Как скажете. Вам в любом случае виднее. Мы-то вообще ничего не видим, кроме Ваших утверждений(не имеющих пока по собой реальной почвы для нас). Обсуждение в данной теме в результате покажет кто из нас более адекватен :)

Изменено: The_Prist13.06.2016 15:47:43

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Opti1

Пользователь

Сообщений: 11
Регистрация: 24.05.2016

#13

13.06.2016 15:52:17

Цитата
The_Prist написал:
Мы-то вообще ничего не видим

Ааа так вы еще и Николай 2 … тогда все понятно ))))

 

The_Prist

Пользователь

Сообщений: 14181
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

Хм…Прикол насчет Николая не совсем понял, ну да ладно. Есть некие догадки. Только к делу это мало относится.
У Вас есть код, есть файлы. Их совместное использование вызывает проблему. Но Вы почему-то считаете, что виноват не код и не файлы — а только память, поэтому нам ни код ни файлы показывать не хотите. Так в чем проблема? Каких решений ждете от людей, если информации дали на 1%? Я выше написал как проблему с памятью можно решить: модернизируйте ПК, ОС, Офис. Других вариантов при Вашем подходе к проблеме вообще быть не может.

Изменено: The_Prist13.06.2016 16:00:34

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Opti1

Пользователь

Сообщений: 11
Регистрация: 24.05.2016

Я таким слепым неадекватам просто поражаюсь, ну не знаешь решения проблемы ну промолчи, а ннет надо ведь что то написать, выделится, для людей со злабы зрением повторно привожу сообщение на русcком языке черными пикселями по белому фону:

Дело не в коде, и ни как на нем не завязано, вот простой смысл проблемы — откроейте ексель и в ячейке А1 напишите ну к примеру «999999» протяните его в строну ну ячеек на 30 и вниз ячеек на 200 тыщ вниз и посмотрите сколько будет занимать Ексель в оперативке, а теперь все эти заполеннные ячейки удалите и посмтрите сколько будет занимать ексель в оперативке — почти столько же!

Изменено: Opti113.06.2016 16:51:21

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

Opti1, штраф 30% за неуважение к помощникам.
Если так и дальше будете продолжать, получите бан

 

The_Prist

Пользователь

Сообщений: 14181
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

#17

13.06.2016 17:21:56

Цитата
Opti1 написал:
для людей со злабы зрением повторно привожу сообщение

Отвечу цитатой себя:

Цитата
The_Prist написал:
дело в том, что после удаления надо файл еще сохранить, а еще лучше закрыть. Тогда можно получить более реальные цифры по памяти. А пока не сохранили — за этим листом как бы зарезервирована память, если вдруг захочется Ctrl+Z нажать.

Могу лишь дополнить: удалять тоже надо грамотно — полностью строки. И обязательно после этого сохранять. А еще можно можно выполнить код:

Код
Sub tttt()
With ActiveSheet.UsedRange: .Value = .Value: End With
End Sub

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

Будем дальше офтальмологические проблемы друг друга обсуждать или Вам все же решение какое-то нужно? Нет, ну я ладно — я неадекват по Вашим словам(еще и слепой, мне в Вашей теме делать нечего). Фиг с ним. Но Вы хоть остальным участникам дайте шанс поучаствовать. Еще раз повторю: то, что Вы считаете, будто проблема не в коде не означает, что проблему нельзя решить правкой кода. Нюансов у работы в VBA много и никогда не знаешь на какой наткнешься в этот раз. Это Вам не С++, чтобы вот так вот взять и памятью поуправлять напрямую из кода. И если проблема все же возникла — не совсем понимаю почему Вы так упорно хотите чего-то от форума, не показывая при этом код, когда от Вас его просят?

Изменено: The_Prist13.06.2016 17:28:03

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Opti1

Пользователь

Сообщений: 11
Регистрация: 24.05.2016

#18

13.06.2016 17:30:12

Цитата
The_Prist написал: Могу лишь дополнить: удалять тоже надо грамотно — полностью строки. И обязательно после этого сохранять. А еще можно можно выполнить код:

Это я пробывал еще до заданного мной вопроса, помагает только полное закрытие екселя, не конкретного файла, а полностью екселя.

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

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

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

#19

13.06.2016 19:07:38

Цитата
vikttur написал:
штраф 30% за неуважение к помощникам

Нарушение Правил п. 3.4. Тут процентами не отделаться: бан на 3 суток.

Содержание

  1. Как очистить рабочую книгу Excel, чтобы она использовала меньше памяти
  2. Симптомы
  3. Причина
  4. Решение
  5. Рекомендации по форматированию
  6. Способ 1: устранение чрезмерного форматирования
  7. Способ 2: удалите неиспользуемые стили
  8. Способ 3: удаление фигур
  9. Метод 4. Удаление условного форматирования
  10. Проблема не устранена?
  11. Рекомендации, связанные с вычислениями
  12. Метод 1. Открытие книги в последней версии Excel
  13. Метод 2. Формулы
  14. Способ 3: вычисление по всем рабочим книгам
  15. Способ 4: переменные функции
  16. Способ 5: формулы массива
  17. Способ 6: определенные имена
  18. Способ 7: ссылки и гиперссылки
  19. Продолжаем
  20. Дополнительная информация
  21. Excel загружает процессор на 100%. Исправляем зависания в работе
  22. Excel загружает процессор на 100% — Решение:
  23. Почему тормозят некоторые книги Excel

Как очистить рабочую книгу Excel, чтобы она использовала меньше памяти

Симптомы

После обновления до Office 2013/2016/Microsoft 365 появляется один или несколько следующих симптомов:

Компьютер использует больше памяти, когда вы открываете несколько рабочих книг Microsoft Excel 2013, сохраняете их или выполняете вычисления в них.

Вы больше не можете открыть столько рабочих книг Excel в одном экземпляре, сколько было до обновления до Excel 2013/2016.

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

При работе с электронной таблицей Excel появляется следующее сообщение об ошибке:

Причина

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

Дополнительные сведения об изменениях, которые мы внесли в Excel 2013, см. в разделе Использование памяти в 32-разрядной версии Excel 2013.

Решение

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

Многие рабочие книги Excel имеют ряд проблем, которые могут вызвать затруднения. После устранения этих проблем ваша рабочая книга будет работать более эффективно.

Рекомендации по форматированию

Форматирование может привести к тому, что рабочие книги Excel станут настолько большими, что будут работать некорректно. Часто Excel зависает или аварийно завершает работу из-за проблем с форматированием.

Способ 1: устранение чрезмерного форматирования

Чрезмерное форматирование в рабочей книге Excel может привести к расширению файла и ухудшению производительности. Форматирование будет считаться чрезмерным если отформатировать целые столбцы или строки с помощью цвета или границ. Эта проблема также возникает, когда форматирование требует копирования или импорта данных с веб-страниц или баз данных. Чтобы устранить избыточное форматирование, используйте надстройку для очистки формата, которая доступна в разделе Очистка избыточного форматирования ячеек в рабочем листе.

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

Способ 2: удалите неиспользуемые стили

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

Существует множество утилит, которые удаляют неиспользуемые стили. Если вы используете книгу Excel на основе XML (то есть .xlsx или XLSM-файл), вы можете использовать средство очистки стиля. Вы можете найти этот инструмент здесь.

Если после удаления неиспользуемых стилей у вас по-прежнему возникают проблемы, перейдите к способу 3.

Способ 3: удаление фигур

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

  • Диаграммы
  • Рисование фигур
  • Comments
  • Клипарт
  • SmartArt
  • Изображения
  • WordArt

Часто эти объекты копируются с веб-страниц или других рабочих листов, скрываются или располагаются друг на друге. Зачастую пользователь не подозревает об их присутствии.

Для проверки наличия фигур выполните указанные ниже действия:

  1. На домашней ленте нажмите Найти и выделить, а затем нажмите Область выделения.
  2. Нажмите Фигуры на этом листе. Фигуры отображаются в списке.
  3. Удалите ненужные фигуры. (Значок в виде глаза указывает, видна ли фигура).
  4. Повторите шаги от 1 до 3 для каждого листа.

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

Метод 4. Удаление условного форматирования

Условное форматирование может привести к увеличению размера файла. Это происходит в том случае, если условное форматирование в файле повреждено. Вы можете удалить условное форматирование, чтобы проверить, не связана ли проблема с повреждением в форматировании. Чтобы удалить условное форматирование, выполните следующие действия:

  1. Сохраните резервную копию файла.
  2. На домашней ленте щелкните Условное форматирование.
  3. Удалите правила со всего листа.
  4. Выполните шаги 2 и 3 для каждого листа в книге.
  5. Сохраните книгу под другим именем.
  6. Убедитесь в том, что проблема устранена.

Если удаление условного форматирования позволило устранить проблему, откройте исходную книгу, удалите условное форматирование и повторно примените его.

Проблема не устранена?

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

Рекомендации, связанные с вычислениями

Помимо форматирования сбой и зависание в Excel также могут вызывать вычисления.

Метод 1. Открытие книги в последней версии Excel

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

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

Метод 2. Формулы

Просмотрите книгу и изучите типы формул, которые вы используете. Для некоторых формул требуется много памяти. К ним относятся следующие формулы с массивами:

Их можно использовать. Однако следует помнить о диапазонах, на которые вы ссылаетесь.

Формулы, которые ссылаются на целые столбцы, могут привести к низкой производительности файлов .xlsx. Размер сетки увеличился с 65 536 до 1 048 576 строк и с 256 (IV) до 16 384 столбцов (XFD). Популярный (однако не самый лучший) способ создания формул заключался в том, чтобы ссылаться на целые столбцы. Если вы ссылались только на один столбец в старой версии, то были включены только 65 536 ячеек. В новой версии вы ссылаетесь более чем на 1 миллион столбцов.

Предположим, что вы используете следующую функцию ВПР:

В Excel 2003 и более ранних версиях данная функция ВПР ссылалась на целую строку, которая включала только 655 560 ячеек (10 столбцов x 65 536 строк). Однако с новой, более крупной сеткой эта же формула ссылается почти на 10,5 миллиона ячеек (10 столбцов x 1 048 576 строк = 10 485 760).

Это было исправлено в Office 2016/365 версии 1708 16.0.8431.2079 и более поздних. Информацию о том, как обновить Office, см. в разделе Установка обновлений Office.

В более ранних версиях Office вам может потребоваться перестроить формулы, чтобы они ссылались только на те ячейки, которые необходимы для них.

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

Этот сценарий также возникнет при использовании целых строк.

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

Способ 3: вычисление по всем рабочим книгам

Ограничьте формулы, выполняющие вычисления в разных рабочих книгах. Это важно по двум причинам:

  • Вы пытаетесь открыть файл по сети.
  • Excel пытается вычислить большие объемы данных.

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

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

Способ 4: переменные функции

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

Если вы продолжаете испытывать проблему после ограничения переменных формул, переходите к способу 5.

Способ 5: формулы массива

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

Более подробную информацию о том, как работают массивы, можно найти в разделе Производительность Excel 2010: советы по оптимизации препятствий производительности.

Если после обновления формул массива проблема не будет устранена, перейдите к способу 6.

Способ 6: определенные имена

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

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

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

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

Продолжаем

Это наиболее распространенные проблемы, которые вызывают зависание и сбои в Excel. Если вы по-прежнему сталкиваетесь со сбоями и зависаниями в Excel, вам следует рассмотреть возможность открытия запроса в службу поддержки Microsoft.

Дополнительная информация

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

Источник

Excel загружает процессор на 100%. Исправляем зависания в работе

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

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

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

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

Excel загружает процессор на 100% — Решение:

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

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

  • Следующим пунктом идет отключение — «Анимированных элементов управления«
  • Открываем Компьютер — Свойства — Дополнительные параметры системы

  • Вкладка «Дополнительно» — раздел «Быстродействие» — Параметры — Снимаем галочку «Анимированные элементы управления и элементы внутри окна«

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

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

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

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

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

Источник

Почему тормозят некоторые книги Excel

Вроде давно работаю с офисным пакетом от Microsoft, а с подобной проблемой столкнулся впервые. Присылает мне коллега файл и просит разобраться с проблемой. В файле Excel всего 100 строк, но нормально работать с ним невозможно. Ячейки выделяются с ощутимой задержкой. При открытии файла процесс Excel съедает в районе 700 мегабайт оперативной памяти и ряд других симптомов, не позволяющих нормально работать с документом.

Первое, что меня насторожило — размер файла. Для 100 строк, размер в 29 мегабайт явно многовато. Первым делом я попробовал сохранить файл в режиме совместимости с Office 2003, но положительного результата это не принесло. Файл еще больше увеличился в размере и работать с ним стало еще трудней. Тогда мне ничего не оставалось как обратиться за помощью к Google. Через несколько попыток формирования разных запросов, поиск вывел меня на какой-то англоговорящий форум, где один из участников предложил свое решение подобных проблем.

Проблема тормозов в Excel крылась в присутствии на листе рабочей книги большего количества графических фигур. Посмотреть список этих фигур вы можете в меню «Главная» -> «Найти и выделить» -> «Область выделения».

В моем случае их оказалось почти 50 тысяч. Откуда они взялись — отдельный вопрос. Создатель файла разводит руками, но мне кажется, что подобные вещи возникают из-за постоянных вставок в файл данных из других книг. Во всяком случае пользователь составивший файл занимался именно копи пастом. Хорошо, проблема выяснена, а как ее теперь решить? Удалять графические фигуры через это окно слишком сложно (не забываем, Excel по прежнему тормозит).

Вот тут на помощь к нам приходит мощный механизм макросов. Создаем новый макрос («Вид» -> «Макросы») и копируем в него следующий код:

Код копируем прямо в созданную процедуру, затем запускаем его. Excel сразу же задумается и приступит у удалению всех лишних объектов. Мои пятьдесят тысяч объектов были удалены за 4,5 минуты. После завершения процедуры исходный файл похудел аж до 29 килобайт (. ).

Уверен, что эту заметку будут читать не только разработчики (моя целевая аудитория), но и обычные пользователи. В связи с этим, обращаю внимание на код. Он удаляет абсолютно все объекты с активного листа. Под категорию «все» подпадают текстовые поля, кнопки и т.д. Если в вашем документе есть кнопки и прочие элементы управления, то обязательно укажите фильтр в цикле. Проверить тип удаляемого объекта можно так:

Выше приведенный код будет удалять только текстовые поля. Ознакомиться со всеми типами фигур вы можете на в MSDN.

Источник

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

1) Какие есть способы повысить верхнюю планку расхода памяти экселя — хотя бы до «1 000 000 КБ» ? (У меня оперативной памяти 32 Гб)

SergVrn2, для начала определитесь, что проблема с планкой оперативной памяти экселя, а не с конкретным файлом. Если проблема будет в конкретной книге — лечить нужно конкретную книгу, а не приложение.
Создайте рабочую книгу, вбейте в А1 «=100000» в B1 формулу «=А1″, скопируйте В1, нажмите ctrl+shift+»→» и вставьте формулу прямо во всю строчку. Скопируйте эту строчку где нибудь 200000 раз. Отследите, сколько памяти потребляет этот тестовый файл, озвучьте результат здесь. Каким образом ваша проблема завязана с VBA?

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

когда отметка расхода памяти достигает «560 000 КБ» — то книга наглухо зависает.

Это ни разу не предел для Excel. Но при этом вам следует озвучить версию операционной системы (исходя из 32Гб оперативки предполагаем, что разрядность — 64 бита), а также версию и разрядность самого офиса. В 2016 версии вообще после обновлений бывают удивительные проблемы. Если вы фанат 2003 версии (а она 32 бита), полагаю проблемы совместимости возможны. У вас-то какая версия? Какие обновления на нее установлены?

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

Причем если переходишь по листам этой книги, где тоже полно разного содержимого — то расход памяти на книгу — дополнительно скачкообразно увеличивается.

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

Содержание

  • Excel работает лучше с большим объемом оперативной памяти?
  • Больше оперативной памяти дает больше скорости?
  • Что заставляет Excel работать быстрее?
  • Использует ли Excel оперативную память?
  • Достаточно ли 8 ГБ ОЗУ для больших файлов Excel?
  • Excel работает быстрее с большим количеством ядер?
  • Оперативная память 2400 МГц — это хорошо?
  • Какую скорость оперативной памяти я должен получить?
  • Увеличивает ли 16 ГБ ОЗУ FPS?
  • Почему файл Excel такой медленный?
  • Почему в Excel выполняется медленная прокрутка?
  • Какой процессор лучше всего подходит для Excel?
  • Мне нужно 16 ГБ ОЗУ для Excel?
  • Почему Excel использует так много оперативной памяти?
  • Вам нужно 32 ГБ ОЗУ для Excel?

Хотя память не влияет на скорость вычислений или манипуляций Excel, размер вашей базы данных (количество используемых столбцов и строк) зависит от объема доступной оперативной памяти в вашей системе. Помните, что только то, что ваш компьютер имеет 8 ГБ оперативной памяти, не означает, что у вас есть столько возможностей для работы.

Большие наборы данных и 64-разрядная версия Excel

64-разрядная версия Windows обеспечивает больший объем адресуемой памяти, и Excel разработан с учетом преимуществ этой емкости. … Использование памяти также оптимизирован, чтобы быть более эффективным как в 32-битной, так и в 64-битной версиях Excel.

Больше оперативной памяти дает больше скорости?

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

Что заставляет Excel работать быстрее?

В этом руководстве мы покажем вам, как ускорить вычисления в Excel.

  • Попробуйте использовать «более быстрые формулы» …
  • Избегайте летучих формул. …
  • Избегайте больших диапазонов. …
  • Замените формулы значениями. …
  • Избегайте условного форматирования. …
  • Уменьшите количество листов. …
  • Используйте многопоточный расчет. …
  • Используйте 64-битную версию Excel.

Использует ли Excel оперативную память?

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

Достаточно ли 8 ГБ ОЗУ для больших файлов Excel?

Общие сведения о распределении памяти в Excel

Фактически все версии Excel после Excel 2003 были разработаны для использования максимум 2 ГБ памяти. Итак, хотя ваш компьютер может иметь 4 ГБ или даже 8 ГБ ОЗУ, Excel может использовать только 2 ГБ из этого. Если он достигнет этого предела, вы получите сообщения об ошибках.

Excel работает быстрее с большим количеством ядер?

Чтобы продолжить то, что говорил SkyNetRising — сложная часть Excel использует несколько ядер— но не для всех функций. Таким образом, некоторые функции будут работать быстрее, чем больше ядер вы предоставите, но тогда вы можете легко попасть в узкое место, если полагаетесь на функцию (пример, приведенный на форуме MS, — это макросы), которая может использовать только 1 поток.

Оперативная память 2400 МГц — это хорошо?

Да это вполне нормально. Я использую 2133 МГц 16 ГБ без каких-либо проблем с играми и многозадачностью.

Какую скорость оперативной памяти я должен получить?

С учетом сказанного мы рекомендуем использовать 16 ГБ оперативной памяти если вы собираете игровой ПК в 2020 году, вместе с любой скоростью, рекомендованной для процессора и материнской платы, на которую вы ориентируетесь.

Увеличивает ли 16 ГБ ОЗУ FPS?

Объем памяти, необходимый для запуска игр, может варьироваться от игры к игре. … Если у вас уже есть приличный объем оперативной памяти (скажем, 16 ГБ), добавление большего количества оперативной памяти, вероятно, не увеличит ваш FPS в большинстве игр и сценарии, поскольку по-прежнему не так много игр, в которых используется более 16 ГБ памяти.

Почему файл Excel такой медленный?

Самая большая причина медленных файлов Excel: формулы, вычисление которых занимает слишком много времени. … Если для него установлено значение Вручную, формулы не будут пересчитываться, если вы не отредактируете отдельную ячейку напрямую. Это означает, что ваш файл не будет зависать надолго, прежде чем вы сможете продолжить работу.

Почему в Excel выполняется медленная прокрутка?

Вы можете попробовать отключить аппаратное графическое ускорение и проверить результат: Открыть Excel> Файл> Параметры> Дополнительно> В разделе «Экран» установите флажок «Отключить аппаратное ускорение графики»> нажмите «ОК» и перезапустите Excel.

Какой процессор лучше всего подходит для Excel?

Если посмотреть на текущий ассортимент процессоров Intel, H процессоры определенно являются лучшими для Excel, а некоторые из новых чипов H, таких как i7-8750H, имеют 6 ядер, что даже лучше.

Мне нужно 16 ГБ ОЗУ для Excel?

большие отличия может потреблять большую оперативную память, и это помогает иметь машину на 16 ГБ с 64-разрядной версией Excel.

Почему Excel использует так много оперативной памяти?

Компьютер использует больше памяти, когда вы открываете несколько книг Microsoft Excel 2013, сохранять книги Excel или производить расчеты в книгах Excel. … Чтобы увеличить доступную память, рассмотрите следующие возможности: — Использование 64-разрядной версии Microsoft Excel. — Добавление памяти к вашему устройству.

Вам нужно 32 ГБ ОЗУ для Excel?

32 ГБ памяти также должны быть более чем достаточно. Я также предлагаю использовать SSD для хранения файлов Excel.

Интересные материалы:

Как получить удаленный заказ с AliExpress?
Как пользователь может удалять слайды в обычном режиме?
Как предотвратить удаление документа?
Как просмотреть удаленную историю Chrome?
Как проверить и удалить скрытый текст?
Как разблокировать удаленный контакт?
Как сделать Ctrl Alt Delete без клавиатуры?
Как удалить 1000 строк в Excel?
Как удалить 360?
Как удалить адрес электронной почты с автозаполнением в Mac Mail?

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

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

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

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

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

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

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

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

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

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

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

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

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

Всем добра!

Понравилась статья? Поделить с друзьями:
  • Excel миф этот лист
  • Excel миф эта книга
  • Excel миф что это такое
  • Excel миф цикл в цикле
  • Excel миф цикл for