Remkomplekty.ru

IT Новости из мира ПК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Excel недостаточно памяти

недостаточно памяти для создания книги excel

Мой оригинальный код:

Получаю ошибку в строке 6.

сообщение об ошибке:

Приложение Microsoft Excel не может открывать или сохранять документы из-за недостаточно памяти или места на диске.

4 Ответов

Какую библиотеку вы используете ?

Я уже говорил об этом, но на самом деле Microsoft в настоящее время не рекомендует и не поддерживает автоматизацию приложений Microsoft Office из любого автоматического, неинтерактивного клиентского приложения или компонента (включая службы ASP, ASP.NET, DCOM и NT), поскольку Office может демонстрировать нестабильное поведение и/или взаимоблокировку при запуске Office в этой среде.

Я рекомендую вам искать бесплатную библиотеку, такую как Open Office XML, или несвободную библиотеку, такую как Aspose.

Мне жаль, что я не мог найти ссылку раньше. Я использовал поддержку EPPlus. http://epplus.codeplex.com

Спасибо за попытку помочь!

как насчет этого:

Необязательный Объект. Определяет способ создания новой книги. Если это аргумент-это строка, указывающая имя существующего Microsoft Excel Файл, Новая книга создается с указанным файлом в качестве шаблон. Если этот аргумент является константой, новая книга содержит один лист указанного типа. Может быть одним из следующих Константы XlWBATemplate: xlWBATChart, xlWBATExcel4IntlMacroSheet, xlWBATExcel4MacroSheet, или xlWBATWorksheet. Если этот аргумент является опущено, Microsoft Excel создает новую книгу с числом пустых листы (количество листов задается параметром SheetsInNewWorkbook свойство.)

Если вы пытаетесь создать новую книгу, попробуйте сделать следующее;

Похожие вопросы:

Как получить текущую дату создания файла рабочей книги, используя VBA в excel 2010? Я просмотрел все свойства ThisWorkBook и, кажется, ничего там не нашел.

Я довольно новичок в Java. Есть одна вещь, по которой я скучаю .NET хотя легко совместимость с Microsoft Office и Excel. Я попробовал использовать Apache POI для написания Excel книг, и я был очень.

Я автоматизирую окно Excel из приложения Qt с помощью QAxObject . Мне нужно получить уведомление, когда окно Excel закрывается пользователем. Объект Excel workbook COM имеет событие BeforeClose() .

Предположим, у меня есть файл excel excel_file.xlsx , и я хочу отправить его на свой принтер с помощью Python, поэтому я использую: import os os.startfile(‘path/to/file’,’print’) Моя проблема.

Получаю ниже ошибка с укрепить аудит верстак применение : [error]: непредвиденное исключение при синтаксическом анализе *.JS com.fortify.sca.analyzer.a: для полного анализа недостаточно доступной.

У меня есть таблица данных, которая содержит более 125 000 записей. Я пытаюсь экспортировать эту таблицу данных в файл excel. Если количество записей меньше, то мой код работает отлично. Но в этом.

Я пытаюсь использовать C# с библиотекой COM Interop, чтобы открыть набор очень тяжелых книг excel. Я должен использовать C#,, потому что мне также нужно запустить macros, переместить некоторые.

Что делать, если при открытии документа в Word появляется сообщение «Недостаточно памяти или места на диске»

Microsoft Word — самый продвинутый и мощный текстовый процессор, без труда справляющейся с открытием и редактированием документов в сотни страниц со сложным форматированием текста. Но если это так, как можно объяснить ошибку «Недостаточно памяти или места на диске» , появляющуюся сразу после открытия файла при том, что на компьютере не наблюдается недостатка ни оперативной, ни физической дисковой памяти?

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

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

Рассмотрим эти причины более подробно.

Читать еще:  Музыка из фильмов видео ютуб

Повреждение файла Normal.dotm

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

Для этого, закрыв все файлы Microsoft Office, перейдите в каталог %userprofile%AppDataRoamingMicrosoftШаблоны и переименуйте расширение файла Normal.dotm в OLD или BAK .

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

При следующем запуске Word шаблон будет создан с настройками по умолчанию.

Некорректная работа надстроек

Если в вашем Word имеются активные надстройки, попробуйте их отключить.

Для этого перейдите по цепочке настроек Файл -> Параметры -> Надстройки.

Внизу в выпадающем списке выберите «Надстройки Word», нажмите «Перейти».

И снимете в открывшемся окошке галочки с активных надстроек.

То же самое повторите и для надстроек COM. Можно действовать и методом исключения, отключая надстройки одну за другой и проверяя каждый раз работу редактора.

Изменение разрешений каталога шрифтов

Еще одной распространенной причиной появления ошибки является изменение разрешений системного каталога Fonts , содержимое которого используется приложениями пакета Microsoft Office. Ошибка может возникать во всех версиях Windows, но чаще всего ее появление отмечалось в Windows 10 Creator Update. Устранить эту неполадку можно с помощью PowerShell , выполнив следующие две команды.

Excel недостаточно памяти

При выполнении макроса или просто работы с большим объемом данных в Exel — вылетает ошибка «Недостаточно памяти» (или «Недостаточно ресурсов», «Out of Memory»). Первым делом мы начинаем смотреть в диспетчере задач, сколько у нас используется памяти. Странно, мы видим, что свободной оперативной памяти предостаточно. Excel съедает не так уж и много памяти. Но почему же вылетает такая ошибка? Давайте сначала разберемся в памяти. Тогда нам станет почему она заканчивается. Мы знаем, что в компьютере есть оперативная память, жесткий диск, кэш в процессоре. Это физические устройства, которые находятся в распоряжении операционной системы. Операционная система выделяет необходимый объем памяти для каждого приложения. В диспетчере задач, отображается использование физической оперативной памяти. Приложения, в том числе Excel, оперирует виртуальной памятью. Что же такое виртуальная память? Виртуальная память — это объем памяти доступный приложению.

Непонятно? Давайте рассмотрим простой пример.

Возьмем первоклассника в первой четверти. В школьной программе дети изучают счет до десяти. Виртуальная память равна 10. Дети учатся решать примеры и задачи, используя числа до 10. Ребенок с легкостью может решить примеры: 2+5=7, 9-4=5. Но задача 9+4=? становится для него непосильной, потому что переполняется объем виртуальной памяти. Во второй четверти первоклассники изучают счет до двадцати. Виртуальная память увеличивается с 10 до 20. Наш ребенок может с легкостью решить пример 9+4=13, который в первой четверти вызывал у него затруднения. Объем физической памяти не связан с понятием виртуальной памяти. Объем задействованных нервных клеток головного мозга ребенка за одни каникулы не увеличился в два раза. При этом виртуальная память первоклассника за четверть выросла в 2 раза, а концу учебного года первоклассники оперируют числами до 100, т.е. виртуальная память вырастает на порядок. Давайте вернемся к нашему Excel-ю. Теперь мы понимаем, что когда Excel говорит, что у него заканчивается виртуальная память, он сообщает, что заканчивается его внутренняя память. О реальной физической оперативной памяти, Excel знает ровно столько, сколько знает (а точнее не знает) наше самосознание о нашем мозге. Вы можете запускать приложение Excel и открывать файлы, как на мощных компьютерах, так и на стареньких слабеньких компьютерах. Правда работать все будет с разной производительностью. Поэтому заглядывать в диспетчер задач, в данном случае не имеет особого смысла. Объем виртуальной памяти Excel по данным MSDN

Читать еще:  Vba excel имя листа

Почему же происходит переполнение виртуальной памяти? Следует помнить, когда мы запускаем Excel, мы уже занимаем определенный объем виртуальной памяти. Под открытие файлов, надстроек, библиотек нам остается меньше максимально доступного объема памяти. Очевидная причина переполнения памяти: мы создаем большие массивы, коллекции и заполняем их данными. Не очевидная причина, когда мы не видим в коде большие массивы и коллекции заполненных данными. Например, мы в коде создаем некий массив данных, заполняем его, а по окончании выполнения процедуры (или функции) не стираем его. Если запускать данный код много раз, то на некоторой итерации может возникнуть переполнение виртуальной памяти. Во избежание подобной ошибки данной ошибки, рекомендую в конце выполнения кода очищать данные: Вроде бы, в VBA предусмотрена ограничение области видимости переменной, и по завершению выполнения кода процедуры или функции не глобальные переменные перестают существовать. Но к сожалению, при большом повторении процедур, память может переполняется. Встречаются ситуации, когда за собой не очищают память, другие процедуры, которые не доступны разработчику. В данном случае мы ничего сделать не сможем, за исключением мониторинга объема памяти.

excel недостаточно места на диске

Если при открытии некоторых документов получаем ошибку «Приложению Microsoft Excel (Word) не удается открыть или сохранить документы из-за нехватки памяти или места на диске» — делаем следующее:

Открываем Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью

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

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.

См. также

Примечание: Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Была ли информация полезной? Для удобства также приводим ссылку на оригинал (на английском языке).

Microsoft Word — самый продвинутый и мощный текстовый процессор, без труда справляющейся с открытием и редактированием документов в сотни страниц со сложным форматированием текста. Но если это так, как можно объяснить ошибку «Недостаточно памяти или места на диске» , появляющуюся сразу после открытия файла при том, что на компьютере не наблюдается недостатка ни оперативной, ни физической дисковой памяти?

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

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

Рассмотрим эти причины более подробно.

Повреждение файла Normal.dotm

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

Для этого, закрыв все файлы Microsoft Office, перейдите в каталог %userprofile%AppDataRoamingMicrosoftШаблоны и переименуйте расширение файла Normal.dotm в OLD или BAK .

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

При следующем запуске Word шаблон будет создан с настройками по умолчанию.

Некорректная работа надстроек

Если в вашем Word имеются активные надстройки, попробуйте их отключить.

Читать еще:  Как очистить историю видео в одноклассниках

Для этого перейдите по цепочке настроек Файл -> Параметры -> Надстройки.

Внизу в выпадающем списке выберите «Надстройки Word», нажмите «Перейти».

И снимете в открывшемся окошке галочки с активных надстроек.

То же самое повторите и для надстроек COM. Можно действовать и методом исключения, отключая надстройки одну за другой и проверяя каждый раз работу редактора.

Изменение разрешений каталога шрифтов

Еще одной распространенной причиной появления ошибки является изменение разрешений системного каталога Fonts , содержимое которого используется приложениями пакета Microsoft Office. Ошибка может возникать во всех версиях Windows, но чаще всего ее появление отмечалось в Windows 10 Creator Update. Устранить эту неполадку можно с помощью PowerShell , выполнив следующие две команды.

Ошибка VBA в Excel «Недостаточно памяти»

3 Xinneh [2014-04-20 13:06:00]

Я нахожусь в Excel 2010, по общему признанию, очень большом листе (строки 400k X 20 столбцов).

Мой код направлен на:

  • загрузить весь лист в массив
  • изучите каждую строку для определенных критериев
  • строки, которые соответствуют, копируются в другой массив
  • наконец, верните второй массив обратно на другой лист
  • второй массив окажется примерно на 90% от оригинала

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

первая копия работает, а вторая — ошибка «Out of memory».

Любые идеи, если есть обходной путь? или это просто ограничение VBA/Excel.

Есть ли способ не предварительно определить/инициализировать целевой массив, а вместо этого позволить ему «расти» с каждой успешной квалификацией критериев? (В масштабе такого значения).

vba excel-vba excel

2 ответа

1 Решение kwiqry [2014-04-20 14:22:00]

Как отмечают ваши комментарии, эта ошибка возникает из-за нехватки рабочей памяти.

Каждая переменная типа Variant потребляет 16 байтов, поэтому ваш код требует огромного объема памяти. Таким образом, одним из способов решения этой проблемы является увеличение физической памяти на вашем компьютере.

Другое решение — это фильтрация данных на определенное количество строк.

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

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

Массивы — это, безусловно, путь, поэтому выбор между ними:

  1. Загрузка данных партиями, а затем выполнение вашей обработки на непрерывном наборе данных * (жизнеспособный до больших объемов данных — возможно, около 8 М элементов в зависимости от вашей системы)
  2. Загрузка данных партиями, а затем обработка вашей обработки только в партии (жизнеспособная для произвольного количества данных)

Редактирование: я вижу, что вы 400k * 20, который нажимает границы варианта 1. У вас может не быть выбора, кроме как реорганизовать ваш код, загружать и обрабатывать по партии (по сравнению с загрузкой по пакету, а затем обрабатывать вместе)

  • Это должно быть хорошо до тех пор, пока очень большие наборы данных, так как ошибка из памяти не вначале не от размера самого массива, а от чтения из рабочего листа.
  • Если вы получаете ошибку Out of Memory из самого массива, тогда:
    • у вас не будет выбора, кроме как использовать 64-битный Excel;
    • Или (лучше), чтобы реорганизовать вашу процедуру для обработки данных в кусках (вариант 2 выше).

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

Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector
×
×