Excel ошибка c0000005

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

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

    Детали ошибки:

    Log Name:      Application
    Source:        Application Error
    Date:          10.03.2020 14:54:11
    Event ID:      1000
    Task Category: (100)
    Level:         Error
    Keywords:      Classic
    User:          N/A
    Computer:      ***
    Description:
    Faulting application name: EXCEL.EXE, version: 16.0.4966.1000, time stamp: 0x5e205ba2
    Faulting module name: EXCEL.EXE, version: 16.0.4966.1000, time stamp: 0x5e205ba2
    Exception code: 0xc0000005
    Fault offset: 0x00000000012d9cb9
    Faulting process id: 0x33a4
    Faulting application start time: 0x01d5f6d19f23c54a
    Faulting application path: C:\Program Files\Microsoft Office\Office16\EXCEL.EXE
    Faulting module path: C:\Program Files\Microsoft Office\Office16\EXCEL.EXE
    Report Id: 710d93c6-9927-437f-a3e2-e4379819cd11
    Faulting package full name: 
    Faulting package-relative application ID: 
    Event Xml:
    <Event xmlns=»http://schemas.microsoft.com/win/2004/08/events/event»>
      <System>
        <Provider Name=»Application Error» />
        <EventID Qualifiers=»0″>1000</EventID>
        <Level>2</Level>
        <Task>100</Task>
        <Keywords>0x80000000000000</Keywords>
        <TimeCreated SystemTime=»2020-03-10T11:54:11.011099300Z» />
        <EventRecordID>2195</EventRecordID>
        <Channel>Application</Channel>
        <Computer>***</Computer>
        <Security />
      </System>
      <EventData>
        <Data>EXCEL.EXE</Data>
        <Data>16.0.4966.1000</Data>
        <Data>5e205ba2</Data>
        <Data>EXCEL.EXE</Data>
        <Data>16.0.4966.1000</Data>
        <Data>5e205ba2</Data>
        <Data>c0000005</Data>
        <Data>00000000012d9cb9</Data>
        <Data>33a4</Data>
        <Data>01d5f6d19f23c54a</Data>
        <Data>C:\Program Files\Microsoft Office\Office16\EXCEL.EXE</Data>
        <Data>C:\Program Files\Microsoft Office\Office16\EXCEL.EXE</Data>
        <Data>710d93c6-9927-437f-a3e2-e4379819cd11</Data>
        <Data>
        </Data>
        <Data>
        </Data>
      </EventData>
    </Event>

    ОС Windows 10 x64

    Примечательно, что после удаления обновления KB4484256 ошибка исчезает. Возможно, кто-то сталкивался с таким. Можно ли справиться с данной пробелемы без удаления данного обновления. 

    • Изменено

      10 марта 2020 г. 13:29

Ответы

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

    Ознакомьтесь с нижеуказанной инструкцей:

    Также можете посмотреть рекомендации в обсуждении, где речь идет о данной ошибке:


    Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется «как есть» без каких-либо гарантий.

    • Помечено в качестве ответа
      Иван ПродановMicrosoft contingent staff, Moderator
      31 марта 2020 г. 11:22

So I have a excel macro-enabled sheet (.xlsm) in excel 2010 that pulls in data every 10 seconds through a query that I run in vba. They data is not on a SQL server which is why I am using vba to pull the data. The sheet works fine initially and then it crashes after ~2 hours or so with a popup saying «Microsoft excel has stopped working» and when i click on «problem details», i see the following,

Problem signature:
  Problem Event Name:                        APPCRASH
  Application Name:                             EXCEL.EXE
  Application Version:                           14.0.6024.1000
  Application Timestamp:                     4d83e39d
  Fault Module Name:                          EXCEL.EXE
  Fault Module Version:                        14.0.6024.1000
  Fault Module Timestamp:                  4d83e39d
  Exception Code:                                  c0000005
  Exception Offset:                                0000000000286885
  OS Version:                                          6.1.7601.2.1.0.18.10
  Locale ID:                                             1033

Additional information about the problem:
  LCID:                                                     1033
  skulcid:                                                 1033

Can anyone help me with this issue?

One of our users uses pivot tables a lot. She often called me about Excel crashing from time to time without being able to reproduce the problem. Today we have found a way to reproduce the crash every time. Here’s how (Excel is in French at work, translations may be off):

  1. Select three cells from the pivot table

  2. Select Conditional formatting -> Highlight rules (first one) ->
    Other rules

  3. Select «Apply formatting only to first or last values» in the new
    window

  4. Hit OK

Excel will stop responding. Below is the Event from the Windows Event viewer (Bing translated from French):

Faulting module name: EXCEL.EXE, version: 15.0.4535.1507, time stamp: 0x52282c09 
exception Code: 0xc0000005 error offset: 0x00000000008104fb 
faulting process ID: 0xfb0 
faulting application start time: 0x01cec9c04bac50a7 
faulting application path: C:\Program Files\Microsoft Office 15\root\office15\EXCEL.EXE 
faulting module path: C:\Program Files\Microsoft Office 15\root\office15\EXCEL.EXE 
report ID: 0d6d418d-417c-11e3-9520-e0cb4e24e8d1

This is on my computer. I have Office 2013 64 bits with no add-ins and have been able to reproduce the same issue as hers. She has Office 2010 32 bits with some add-ins (mainly for VBA scripting and formulas).

I can’t deactivate DDE since pivot tables will stop working.

The error on her PC is the same as mine.

The error will still show up with Excel in safe mode. (/s)

On both her PC and mine there is nothing checked on the compatibility tab for Excel.

This is a really weird and annoying issue, and so far I haven’t been able to fix it.

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

  • Приложение Excel закрывается при открытии файла с макросами (при включенном режиме безопасности Включить все макросы);
  • Ошибка приложения Excel возникает при попытке включить содержимое (нажатии соответствующей кнопки);
  • Ошибка приложения Excel возникает при сохранении файла с макросами;

Ну и по горячим следам очередного инцидента, дабы не откладывать на потом, решил для себя собрать небольшой хаб по ошибкам приложения Excel с последующей модификацией, дабы опять не терять время на поиск информации в Сети и на составление облака причин.
Суть в том, что в процессе открытия файла xlsm, и при отключенных макросах, в верхней части основного окна (над таблицей), высвечивается строка уведомления: ПРЕДУПРЕЖДЕНИЕ СИСТЕМЫ БЕЗОПАСНОСТИ Запуск макросов отключен, с кнопкой включения содержимого (макросов). Как только пользователь её нажимает, Excel попросту аварийно завершается (падает) с ошибкой Программа Microsoft Excel не работает и характерным окном уведомления:

excel ошибка макроса

При этом было замечено, что непосредственно перед возникновением ошибки приложения Excel никаких системных обновлений и обновлений пакета Office не устанавливалось. Возможно, каким-то образом задействованы последние обновления на Office, но прямой связи я не заметил, а подробного исследования проблемы не проводил. При этом зависимости от версии операционной системы (мною лично сбои наблюдались на Windows 10 LTSC и Windows 7 Professional) так же выявлено не было. При анализе аварийного дампа приложения (*.hdmp) обычно можно увидеть подобную информацию исключения (вывод урезан):

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

. . .

EXCEPTION_RECORD:  (.exr 1)

ExceptionAddress: 00007ff86a1e05ac (VBE7+0x00000000001405ac)

   ExceptionCode: c0000005 (Access violation)

  ExceptionFlags: 00000000

NumberParameters: 2

   Parameter[0]: 0000000000000001

   Parameter[1]: 0000000000000010

Attempt to write to address 0000000000000010

DEFAULT_BUCKET_ID:  NULL_CLASS_PTR_WRITE

PROCESS_NAME:  EXCEL.EXE

ERROR_CODE: (NTSTATUS) 0xc0000005 <Unable to get error code text>

EXCEPTION_CODE: (NTSTATUS) 0xc0000005 <Unable to get error code text>

EXCEPTION_CODE_STR:  c0000005

EXCEPTION_PARAMETER1:  0000000000000001

EXCEPTION_PARAMETER2:  0000000000000010

WRITE_ADDRESS:  0000000000000010

. . .

обычно это NTSTATUS с кодом c0000005 — Access violation, доступ запрещен. И чаще всего в дампе можно увидеть такой вот стек потока (вывод оптимизирован для улучшения представления):

. . .

STACK_TEXT:  

000000b9`1acfdd00 000001d3`2fb24e90 : 000001d3`5a0e0ef0 00000000`00000000 : VBE7+0x1405ac

000000b9`1acfdd08 000001d3`24c1fe20 : 00000000`00000000 000001d3`2fda9640 : 0x000001d3`2fb24e90

000000b9`1acfdd10 000001d3`6cf35760 : 000001d3`2fda9640 000001d3`045c9b30 : 0x000001d3`24c1fe20

000000b9`1acfdd18 000001d3`5a0e0ef0 : 000001d3`045c9b30 000001d3`2fcbb2b0 : 0x000001d3`6cf35760

000000b9`1acfdd20 00000000`00000000 : 000001d3`2fcbb2b0 000001d3`2fcbb318 : 0x000001d3`5a0e0ef0

. . .

из которого единственное что понятно, так это то, что падение Excel происходит в недрах функций библиотеки vbe7.dll (среда исполнения VBA), подгруженной в адресное пространство процесса. Это указывает на проблемы с обработчиком VBA-скриптов, в контексте Excel чаще именуемых макросами.

НЕРЕШЕННОЕ: при отладке приложений из комплекта MS Office, вы не увидите имен функций в стеке вызовов, поскольку отсутствуют отладочные символы как к основным исполняемым файлам (Excel/Word/Outlook), так и к многочисленным библиотекам. Интересно, есть ли какое-либо решение?

VBA

Так что же такое VBA и для чего он предназначается?

VBA (Visual Basic for Application) — язык макропрограммирования, основанный на языке Visual Basic.

В приложениях, входящих в комплект MS Office, таких как Excel, Word, PowerPoint и Access, VBA используется для автоматизации множества рутинных задач (напр.: повторяющихся однотипных действий), позволяет создавать формы для общения с пользователем и предлагает множество иного богатого функционала. При помощи VBA доступно управление электронной таблицей посредством объектно-ориентированной модели кода/данных, при помощи VBA-кода входные данные таблиц могут быть обработаны и представлены в итоговых (результирующих) таблицах и диаграммах (графиках). Таблица становится интерфейсом кода, позволяя легко работать, изменять его и управлять расчётами. На выходе VBA проект, используемый в структурах описанных выше приложений (электронные таблицы Excel, презентации PowerPoint, базы Access), компилируется в специальный бинарный исполняемый файл, который размещается внутри файла основного формата. Применительно к Excel это файл vbaProject.bin, который располагается внутри *.xslm-файла в директории /xl, представляющий собой бинарный исполняемый файл проекта, содержащий макрос в откомпилированном (готовом к исполнению) виде.

Наиболее вероятной причиной сбоя является повреждение блока кода VBA, содержащегося в книге Excel. Об истоках этого остается только догадываться, возможно что в структуре .xlsm-файла, в процессе работы с документом, происходят какие-то [непредвиденные разработчиками] изменения, способные приводить блок кода в неработоспособное состояние.

Решение 1: вставка нового листа

Выполните приведенную последовательность действий:

  1. Открываем [проблемный] .xlsm-файл (файл с макросами).
  2. Не нажимаем кнопку Включить содержимое.
  3. Добавляем в книгу Excel новый лист: правая кнопка мыши на ярлыках Лист1/Лист2/Лист3 → ВставитьЛист.
  4. Сохраняем электронную таблицу. Закрываем Excel.
  5. Открываем проблемный файл заново и включаем макросы.

Решение 2: перекомпиляция проекта

Выполните последовательность действий:

  1. Запускаем и открываем новую книгу Excel (не ваш проблемный файл).
  2. Открываем меню Файл — выбираем Параметры — далее открываем Центр управления безопасностью и заходим в Параметры центра управления безопасностью.
  3. В разделе Параметры макросов — выставляем чекбокс Отключить все макросы с уведомлением.
  4. В разделе Надежные расположения — выставляем чекбокс Отключить все надежные расположения.
  5. В разделе Надежные документы — выставляем чекбокс Отключить надежные документы.
  6. Жмем везде OK. Закрываем Excel.

  7. Открываем [проблемный] .xlsm-файл (файл с макросами).
  8. Не нажимаем кнопку Включить содержимое.
  9. Открывает редактор Visual Basic при помощи комбинации клавиш Alt+F11. Либо можно использовать обходной маневр: в настройках включаем меню Разработчик, после этого в появившемся сверху в ленте меню Разработчик выбираем пункт Visual Basic.
  10. В открывшемся окне редактора Visual Basic (VBA редактор) пересохраняем проект: для этого жмем на панели инструментов кнопку Сохранить (изображение дискетки или комбинация Ctrl+S).
  11. Выбираем из меню Debug — выбираем пункт меню Compile VBA Project:

    recompile vba project

  12. Еще раз сохраняем проект кнопкой Сохранить.
  13. Закрываем редактор Visual Basic.

  14. Сохраняем файл Excel через меню Файл — опцию Сохранить (или нажатием на значок дискетки в левом верхнем углу, либо комбинация клавиш Ctrl+S).
  15. Возвращаем все установки безопасности, сделанные на предыдущих шагах (пункты 2-5).
  16. Закрываем xlsm-файл.
  17. Заново открываем [проблемный] файл, в верхней части, в строке статуса — включаем макросы посредством кнопки Включить содержимое.

Решение 3: добавление модуля

Дополнительное решение состоит в том, что бы внести изменения в макрос без перекомпиляции.

  1. Открываем [проблемный] .xlsm-файл (файл с макросами).
  2. Не нажимаем кнопку Включить содержимое.
  3. Открывает редактор Visual Basic (при помощи комбинации клавиш Alt+F11).
  4. Открываем меню Tools → пункт Options. В открывшемся окне переходим на вкладку General и деактивируем чекбокс Compile on Demand:

    compile on demand

    Закрываем окно Опции нажатием клавиши OK.

  5. В левом фрейме окна проекта (Project) спускаемся вниз, находим раздел Modules, жмем на нём правую кнопку → пункт InsertModule:

    vba insert module

  6. Далее просто закрываем окно редактора Visual Basic, сохраняем основной xslm-документ и закрываем Excel.
  7. Заново открываем [проблемный] файл, в верхней части, в строке статуса — включаем макросы посредством кнопки Включить содержимое.

I have a problem with an old piece of software (early 2000) written in C++ that uses Excel for processing data. It worked fine in previous versions of Excel but since version 2013, I get a crash that I haven’t seen before.

We have created our own COM add-in for Excel, this add-in is registered with regsvr32 and available in Excel 2013. The add-in refused to work at first but disabling Data Execution Prevention (DEP) got it working.

This add-in is accessed by creating an instance of Excel in code:

_Application.CreateDispatch ("Excel.Application");

After creating the instance of Excel we get the loaded add-ins from the instance and find our add-in by looping through the COM add-ins.

_Application.GetCOMAddIns();

Once we got our add-in we can send commands through the interface:

IExcelServer* server = excel.GetServerAddIn();      // Obtain the server COM-AddIn.
HRESULT result = server->Execute (&req, &rep, &retval);

One of the commands we can send here is requesting a value from Excel based on a given string label (the label will be in column A and this function returns the value in column B on the same row). Now the code crashes on the following line of code:

rng.Find (COleVariant (label), CovOptional, CovOptional, COleVariant (xlWhole), CovOptional, xlSearchNext, CovOptional, CovOptional, CovOptional);

The ‘rng’ object is of type Range and is from the correct sheet and the range goes from A1 to A17. When we get the value from ‘rng’ object (rng.GetValue2()) it gives us the following array (which contains the value that is specified in the label argument):

safearray of VARIANT = [1,17](Empty,Empty,BSTR = 0x160bc6bc «Web»,Empty,Empty,Empty,Empty,BSTR = 0x0bbca5cc «Pre»,BSTR = 0x15f499fc «WebStart»,BSTR = 0x0bbca48c «WebMid»,BSTR = 0x0bbca5a4 «WebEnd»,BSTR = 0x160bc80c
«Post»,Empty,Empty,BSTR = 0x15f49a24 «SafeStartWeb»,BSTR = 0x15f49a4c «SafeEndWeb»,Empty)

We receive the following error while debugging:

We also see the following message in the windows event viewer every time that Excel crashes:

The code is made in VS2010 using C++ and running Windows7 x64. We have also tested the code on a Windows8 x64 machine but we got the same result.

Has someone seen this crash before or can advise how to fix it? Thanks in advance.

Понравилась статья? Поделить с друзьями:
  • Excel ошибка 510
  • Excel ошибка 142
  • Excel ошибка 1000
  • Excel ошибка 0x800a03ec
  • Excel незащищенная формула ошибка