Это сообщение появляется, когда ошибка, созданная с помощью метода Raise или оператора Error, не соответствует ошибке, определенной Visual Basic для приложений. This message is displayed when an error generated with the Raise method or Error statement doesn’t correspond to an error defined by Visual Basic for Applications. Оно вызывается также функцией Error для аргументов, не соответствующих ошибкам, определенным Visual Basic для приложений. It is also returned by the Error function for arguments that don’t correspond to errors defined by Visual Basic for Applications. Таким образом, это может быть ошибка, определенная вами или объектом, включая ведущие приложения, такие как Microsoft Excel, Visual Basic и т. д. Thus it may be an error you defined, or one that is defined by an object, including host applications like Microsoft Excel, Visual Basic, and so on. Например, формы Visual Basic создают связанные с формами ошибки, которые нельзя создать из программы, просто указав номер в качестве аргумента метода Raise или функции Error. For example, Visual Basic forms generate form-related errors that can’t be generated from code simply by specifying a number as an argument to the Raise method or Error statement. Это сообщение имеет следующие причины и решения: This message has the following causes and solutions:

приложение выполнило оператор Err.Raisen или Errorn, но номер n не определен программой Visual Basic для приложений. Your application executed an Err.Raisen or Errorn statement, but the number n isn’t defined by Visual Basic for Applications. Если это то, что требовалось, используйте Err.Raise и задайте дополнительные аргументы, чтобы конечному пользователю была понятна суть ошибки. If this was what was intended, you must use Err.Raise and specify additional arguments so that an end user can understand the nature of the error. Например, можно добавить строку описания, источник и справочную информацию. For example, you can include a description string, source, and help information. Чтобы повторно создать ошибку, которую вы перехватили, не следует выполнять перед этим Err.Clear. To regenerate an error that you trapped, this approach will work if you don’t execute Err.Clear before regenerating the error. Если вначале выполнялась Err.Clear, нужно добавить дополнительные аргументы для метода Raise. If you execute Err.Clear first, you must fill in the additional arguments to the Raise method. Убедитесь, что воссоздаете ту же ошибку, просмотрев ее контекст; Look at the context in which the error occurred, and make sure you are regenerating the same error.

при доступе к объектам из других приложений на вашу программу могла распространиться ошибка, которую нельзя сопоставить с ошибкой Visual Basic. It may be that in accessing objects from other applications, an error was propagated back to your program that can’t be mapped to a Visual Basic error.

Просмотрите в документации описание объектов, к которым был доступ. Check the documentation for any objects you have accessed. У объекта Err свойство Source должно содержать программный идентификатор приложения или объекта, в котором создана ошибка. The Err object’s Source property should contain the programmatic ID of the application or object that generated the error. Чтобы понять контекст ошибки, возвращаемой объектом, вы можете использовать конструкцию On Error Resume Next, а не синтаксис строкиOn Error GoTo в коде для получения доступа к объектам. To understand the context of an error returned by an object, you may want to use the On Error Resume Next construct in code that accesses objects, rather than the On Error GoToline syntax.

Перечисление перехватываемых ошибок для ведущего приложения List trappable errors for the host application

Ранее программисты, как правило, использовали цикл для вывода всех строк с сообщениями об ошибках, которые можно перехватить. In the past, programmers often used a loop to print out a list of all trappable error message strings. Обычно это описывалось в таком коде: Typically this was done with code such as the following:

Такой код по-прежнему перечисляет все сообщения об ошибках Visual Basic для приложений, но отображает сообщение "Application-defined or object-defined error" ("Ошибка, определенная приложением или объектом") для ошибок, определенных ведущими приложениями (например для тех, которые в Visual Basic относятся к формам и элементам управления). Such code still lists all the Visual Basic for Applications error messages, but displays "Application-defined or object-defined error" for host-defined errors, for example those in Visual Basic that relate to forms, controls, and so on. Многие из этих ошибок являются перехватываемыми ошибками выполнения. Many of these are trappable run-time errors. С помощью диалогового окна поиска в разделе справки вы сможете найти список перехватываемых ошибок вашего ведущего приложения. You can use the Help Search dialog box to find the list of trappable errors specific to your host application. Щелкните Search (Поиск), введите trappable (перехватываемые) в первом поле ввода и нажмите Show Topics (Показать темы). Click Search, type Trappable in the first text box, and then click Show Topics. Выберите Trappable Errors (Перехватываемые ошибки) в нижнем окне списка и нажмите Go To (Перейти). Select Trappable Errors in the lower list box and click Go To.

Для получения дополнительной информации выберите необходимый элемент и нажмите клавишу F1 (для Windows) или HELP (для Macintosh). For additional information, select the item in question and press F1 (in Windows) or HELP (on the Macintosh).

Поддержка и обратная связь Support and feedback

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Have questions or feedback about Office VBA or this documentation? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь. Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.

Номер ошибки: Ошибка 1004
Название ошибки: Application-defined or object-defined error
Описание ошибки: Run-time error ‘1004’. Application-defined or object-defined error.
Разработчик: Microsoft Corporation
Программное обеспечение: Microsoft Excel
Относится к: Windows XP, Vista, 7, 8

Совместима с Windows 2000, XP, Vista, 7, 8 и 10

Признаки ошибки 1004

  • Появляется сообщение "Ошибка 1004" и окно активной программы вылетает.
  • Ваш компьютер часто прекращает работу после отображения ошибки 1004 при запуске определенной программы.
  • Отображается “Application-defined or object-defined error”.
  • Windows медленно работает и медленно реагирует на ввод с мыши или клавиатуры.
  • Компьютер периодически "зависает" на несколько секунд.

Такие сообщения об ошибках 1004 могут появляться в процессе установки программы, когда запущена программа, связанная с Microsoft Corporation (например, Microsoft Excel), при запуске или завершении работы Windows, или даже при установке операционной системы Windows. Отслеживание момента появления ошибки 1004 является важной информацией при устранении проблемы.

Причины ошибки 1004

  • Поврежденная загрузка или неполная установка программного обеспечения Microsoft Excel.
  • Повреждение реестра Microsoft Excel из-за недавнего изменения программного обеспечения (установка или удаление), связанного с Microsoft Excel.
  • Вирус или вредоносное ПО, которые повредили файл Windows или связанные с Microsoft Excel программные файлы.
  • Другая программа злонамеренно или по ошибке удалила файлы, связанные с Microsoft Excel.

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

Ошибки во время выполнения в базе знаний

star rating here

Как исправить ошибку Microsoft Excel 1004

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

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

Шаг 1: Восстановить записи реестра, связанные с ошибкой 1004

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

В связи с подобным риском мы настоятельно рекомендуем использовать надежные инструменты очистки реестра, такие как WinThruster [Загрузить] (разработанный Microsoft Gold Certified Partner), чтобы просканировать и исправить любые проблемы, связанные с Ошибка 1004. Используя очистку реестра [Загрузить], вы сможете автоматизировать процесс поиска поврежденных записей реестра, ссылок на отсутствующие файлы (например, вызывающих ошибку %%error_name%%) и нерабочих ссылок внутри реестра. Перед каждым сканированием автоматически создается резервная копия, позволяющая отменить любые изменения одним кликом и защищающая вас от возможного повреждения компьютера. Самое приятное, что устранение ошибок реестра [Загрузить] может резко повысить скорость и производительность системы.

Предупреждение: Если вы не являетесь опытным пользователем ПК, мы НЕ рекомендуем редактирование реестра Windows вручную. Некорректное использование Редактора реестра может привести к серьезным проблемам и потребовать переустановки Windows. Мы не гарантируем, что неполадки, являющиеся результатом неправильного использования Редактора реестра, могут быть устранены. Вы пользуетесь Редактором реестра на свой страх и риск.

Перед тем, как вручную восстанавливать реестр Windows, необходимо создать резервную копию, экспортировав часть реестра, связанную с Ошибка 1004 (например, Microsoft Excel):

  1. Нажмите на кнопку Начать.
  2. Введите "command" в строке поиска. ПОКА НЕ НАЖИМАЙТЕENTER!
  3. Удерживая клавиши CTRL-Shift на клавиатуре, нажмите ENTER.
  4. Будет выведено диалоговое окно для доступа.
  5. Нажмите Да.
  6. Черный ящик открывается мигающим курсором.
  7. Введите "regedit" и нажмите ENTER.
  8. В Редакторе реестра выберите ключ, связанный с Ошибка 1004 (например, Microsoft Excel), для которого требуется создать резервную копию.
  9. В меню Файл выберите Экспорт.
  10. В списке Сохранить в выберите папку, в которую вы хотите сохранить резервную копию ключа Microsoft Excel.
  11. В поле Имя файла введите название файла резервной копии, например "Microsoft Excel резервная копия".
  12. Убедитесь, что в поле Диапазон экспорта выбрано значение Выбранная ветвь.
  13. Нажмите Сохранить.
  14. Файл будет сохранен с расширением .reg.
  15. Теперь у вас есть резервная копия записи реестра, связанной с Microsoft Excel.

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

Мы не несем никакой ответственности за результаты действий, совершенных по инструкции, приведенной ниже — вы выполняете эти задачи на свой ​​страх и риск.

Шаг 2: Проведите полное сканирование вашего компьютера на вредоносное ПО

Есть вероятность, что ошибка 1004 может быть связана с заражением вашего компьютера вредоносным ПО. Эти вредоносные злоумышленники могут повредить или даже удалить файлы, связанные с Ошибки во время выполнения. Кроме того, существует возможность, что ошибка 1004 связана с компонентом самой вредоносной программы.

Совет: Если у вас еще не установлены средства для защиты от вредоносного ПО, мы настоятельно рекомендуем использовать Emsisoft Anti-Malware (скачать). В отличие от других защитных программ, данная программа предлагает гарантию удаления вредоносного ПО.

Шаг 3: Очистить систему от мусора (временных файлов и папок) с помощью очистки диска (cleanmgr)

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

Совет: Хотя утилита Очистки диска является прекрасным встроенным инструментом, она удаляет не все временные файлы с вашего компьютера. Другие часто используемые программы, такие как Microsoft Office, Firefox, Chrome, Live Messenger, а также сотни других программ не поддаются очистке при помощи программы Очистка диска (включая некоторые программы Microsoft Corporation).

Из-за недостатков утилиты Windows Очистка диска (cleanmgr) мы настоятельно рекомендуем использовать специализированное программное обеспечение очистки жесткого диска / защиты конфиденциальности, например WinSweeper [Загрузить] (разработано Microsoft Gold Partner), для очистки всего компьютера. Запуск WinSweeper [Загрузить] раз в день (при помощи автоматического сканирования) гарантирует, что ваш компьютер всегда будет чист, будет работает быстро и без ошибок %%error_name%%, связанных с временными файлами.

Как запустить Очистку диска (cleanmgr) (Windows XP, Vista, 7, 8 и 10):

  1. Нажмите на кнопку Начать.
  2. Введите "command" в строке поиска. ПОКА НЕ НАЖИМАЙТЕENTER!
  3. Удерживая клавиши CTRL-Shift на клавиатуре, нажмите ENTER.
  4. Будет выведено диалоговое окно для доступа.
  5. Нажмите Да.
  6. Черный ящик открывается мигающим курсором.
  7. Введите "cleanmgr" и нажмите ENTER.
  8. Программа Очистка диска приступит к подсчету занятого места на диске, которое вы можете освободить.
  9. Будет открыто диалоговое окно Очистка диска, содержащее флажки, которые вы можете выбрать. В большинстве случаев категория "Временные файлы" занимает большую часть дискового пространства.
  10. Установите флажки напротив категорий, которые вы хотите использовать для очистки диска, и нажмите OK.

Шаг 4: Обновите драйверы устройств на вашем компьютере

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

В связи с временными затратами и общей сложностью обновления драйверов мы настоятельно рекомендуем использовать утилиту обновления драйверов, например DriverDoc (разработана Microsoft Gold Partner), для автоматизации этого процесса.

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

Шаг 5: Используйте Восстановление системы Windows, чтобы "Отменить" последние изменения в системе

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

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

Чтобы использовать Восстановление системы (Windows XP, Vista, 7, 8 и 10):

  1. Нажмите на кнопку Начать.
  2. В строке поиска введите "Восстановление системы" и нажмите ENTER.
  3. В окне результатов нажмите Восстановление системы.
  4. Введите пароль администратора (при появлении запроса).
  5. Следуйте инструкциям Мастера для выбора точки восстановления.
  6. Восстановить ваш компьютер.

Шаг 6: Удалите и установите заново программу Microsoft Excel, связанную с Ошибка 1004

Инструкции для Windows 7 и Windows Vista:

  1. Откройте «Программы и компоненты», нажав на кнопку Пуск.
  2. Нажмите Панель управления в меню справа.
  3. Нажмите Программы.
  4. Нажмите Программы и компоненты.
  5. Найдите Microsoft Excel в столбце Имя.
  6. Нажмите на запись Microsoft Excel.
  7. Нажмите на кнопку Удалить в верхней ленте меню.
  8. Следуйте инструкциям на экране для завершения удаления Microsoft Excel.

Инструкции для Windows XP:

  1. Откройте «Программы и компоненты», нажав на кнопку Пуск.
  2. Нажмите Панель управления.
  3. Нажмите Установка и удаление программ.
  4. Найдите Microsoft Excel в списке Установленные программы.
  5. Нажмите на запись Microsoft Excel.
  6. Нажмите на кнопку Удалить справа.
  7. Следуйте инструкциям на экране для завершения удаления Microsoft Excel.

Инструкции для Windows 8:

  1. Установите указатель мыши в левой нижней части экрана для показа изображения меню Пуск.
  2. Щелкните правой кнопкой мыши для вызова Контекстного меню Пуск.
  3. Нажмите Программы и компоненты.
  4. Найдите Microsoft Excel в столбце Имя.
  5. Нажмите на запись Microsoft Excel.
  6. Нажмите Удалить/изменить в верхней ленте меню.
  7. Следуйте инструкциям на экране для завершения удаления Microsoft Excel.

После того, как вы успешно удалили программу, связанную с Ошибка 1004 (например, Microsoft Excel), заново установите данную программу, следуя инструкции Microsoft Corporation.

Совет: Если вы абсолютно уверены, что ошибка 1004 связана с определенной программой Microsoft Corporation, удаление и повторная установка программы, связанной с Ошибка 1004 с большой вероятностью решит вашу проблему.

Шаг 7: Запустите проверку системных файлов Windows ("sfc /scannow")

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

Чтобы запустить проверку системных файлов (Windows XP, Vista, 7, 8 и 10):

  1. Нажмите на кнопку Начать.
  2. Введите "command" в строке поиска. ПОКА НЕ НАЖИМАЙТЕENTER!
  3. Удерживая клавиши CTRL-Shift на клавиатуре, нажмите ENTER.
  4. Будет выведено диалоговое окно для доступа.
  5. Нажмите Да.
  6. Черный ящик открывается мигающим курсором.
  7. Введите "sfc /scannow" и нажмите ENTER.
  8. Проверка системных файлов начнет сканирование на наличие проблем Ошибка 1004 и других системных файлов (проявите терпение — проверка может занять длительное время).
  9. Следуйте командам на экране.

Шаг 8: Установите все доступные обновления Windows

Microsoft постоянно обновляет и улучшает системные файлы Windows, связанные с Ошибка 1004. Иногда для решения проблемы Ошибки во время выполнения нужно просто напросто обновить Windows при помощи последнего пакета обновлений или другого патча, которые Microsoft выпускает на постоянной основе.

Чтобы проверить наличие обновлений Windows (Windows XP, Vista, 7, 8 и 10):

  1. Нажмите на кнопку Начать.
  2. Введите "update" в строке поиска и нажмите ENTER.
  3. Будет открыто диалоговое окно Обновление Windows.
  4. Если имеются доступные обновления, нажмите на кнопку Установить обновления.

Шаг 9: Произведите чистую установку Windows

Предупреждение: Мы должны подчеркнуть, что переустановка Windows займет очень много времени и является слишком сложной задачей, чтобы решить проблемы Ошибка 1004. Во избежание потери данных вы должны быть уверены, что вы создали резервные копии всех важных документов, изображений, программ установки программного обеспечения и других персональных данных перед началом процесса. Если вы сейчас е создаете резервные копии данных, вам стоит немедленно заняться этим (скачать рекомендованное решение для резервного копирования), чтобы защитить себя от безвозвратной потери данных.

Пожалуйста, учтите: Если проблема 1004 не устранена после чистой установки Windows, это означает, что проблема Ошибки во время выполнения ОБЯЗАТЕЛЬНО связана с аппаратным обеспечением. В таком случае, вам, вероятно, придется заменить соответствующее оборудование, вызывающее ошибку 1004.

Информация об операционной системе

Сообщения об ошибках 1004 могут появляться в любых из нижеперечисленных операционных систем Microsoft Windows:

  • Windows 10
  • Windows 8
  • Windows 7
  • Windows Vista
  • Windows XP
  • Windows ME
  • Windows 2000

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

Обращайтесь к нам в любое время в социальных сетях для получения дополнительной помощи:

Об авторе: Джей Гитер (Jay Geater) является президентом и генеральным директором корпорации Solvusoft — глобальной компании, занимающейся программным обеспечением и уделяющей основное внимание новаторским сервисным программам. Он всю жизнь страстно увлекался компьютерами и любит все, связанное с компьютерами, программным обеспечением и новыми технологиями.

I’m trying to create scripts in Excel and Word that create Word documents from rows in Excel. I’m basing the Word Documents from a ‘dotm’ template. Everything was working fine (and still does) with the ‘dotx’ file format, but as soon as I use the Macro-Enabled, I get the 5981 run-time error application-defined or object-defined error.

I’ve done research online and tried all fixes from enabling Macros, Trusted Locations and Trusted Documents in Word. I’ve tried DoEvent before trying to access. I need to access the ‘dotm’ file as there are Macros in Word I need to run on opening to format the document.

Can someone PLEASE help me? I’m not experienced in VBA and I’m reaching the end of my thread with this.

Results . Expected: Word Documents created and formatted Actual: Run-time error ‘5981’: Application-defined or object-defined error