Ошибка выполнения Excel 1004 обычно возникает, когда вы работаете с поврежденным документом. Вы также получаете эту ошибку, если открываете файл VBA Excel, когда ваш Excel конфликтует с другими программами.
Ошибка выполнения Excel 1004 может появиться из-за множества других основных проблем. Наиболее распространенные сообщения об ошибках включают следующее:
VB: ошибка времени выполнения «1004»: ошибка, определяемая приложением или объектом
Ошибка выполнения Excel VBA 1004 «Не удалось выбрать метод класса Range»
ошибка выполнения 1004 диапазон методов объекта _global не удалось Visual Basic
Макрос Excel «Ошибка выполнения ‘1004″
Ошибка выполнения 1004. Не удалось открыть книгу объектов.
Ошибка времени выполнения «1004»: сбой метода «Рейнджер» рабочего листа объекта
Сохранить как ошибка времени выполнения VBA 1004: ошибка, определяемая приложением или объектом
Если вы получите какую-либо из этих ошибок, вы можете исправить ошибку, используя решения здесь.
Что такое ошибка времени выполнения 1004 в Excel?
Ошибка времени выполнения характерна для приложений, которые интегрируют сценарий Microsoft Visual Basic для приложений (также известный как VBA) для выполнения повторяющихся задач.
Все приложения Microsoft Office используют это специфичное для Windows программирование, но наиболее распространенные проблемы возникают в Excel, особенно в Excel 2007.
Многие пользователи сообщают о проблемах при создании макросов. Макрос — это функция Excel, которая записывает нажатия клавиш и клики, чтобы помочь вам автоматизировать повторяющиеся задачи.
Часто эта задача конфликтует с VBA, что приводит к ошибке 1004. Другой распространенной причиной является поврежденное приложение Excel или поврежденный файл XLS.
Другие возможные причины, связанные с этой ошибкой, включают количество записей легенды, превышающее доступное пространство, и конфликт файлов между Excel и другими приложениями.
Хорошей новостью является то, что эта ошибка существует уже некоторое время, и есть несколько проверенных методов, которые помогут вам ее исправить.
Как исправить ошибку выполнения 1004 в Excel?
1. Удалите Microsoft Works
- Нажмите комбинацию CTRL + ALT + DEL и нажмите «Диспетчер задач».
- Закройте все программы, которые открыты в данный момент.
- Затем нажмите Windows + R, чтобы открыть утилиту «Выполнить».
- Здесь введите appwiz.cpl и нажмите кнопку ОК.

- В списке программ, установленных на вашем компьютере, найдите Microsoft Works. Щелкните его правой кнопкой мыши и нажмите « Удалить».
2. Создайте еще один шаблон Excel
- Запустите Microsoft Excel на своем компьютере.
- Затем создайте новую книгу Microsoft Excel, нажав комбинацию CTRL + N или выбрав Пустая книга на первом экране.

- После создания рабочей книги удалите все листы в рабочей книге, кроме одного.
- Отформатируйте эту книгу, которую вы сохранили.
- Вы можете изменить эту книгу в соответствии с вашими потребностями.
- Наконец, выберите «Файл» > «Сохранить как», чтобы сохранить файл в формате шаблона Excel (.xltx или. xlt).
- Используйте этот формат для Excel в 2017 году и выше.
- Когда документ успешно сохранен, вы можете вставить шаблон с помощью этого кода:
Add Type:=pathfilenameНе забудьте заменить имя файла на фактическое имя документа.
3. Удалите GWXL97.XLA.
- Начните с открытия проводника на вашем компьютере.
- Вы можете сделать это, нажав Windows + E.
- Затем щелкните адресную строку, введите следующий путь
C:/Users/user name/AppData/Local/Microsoft Excel
и нажмите Enter:

- Здесь откройте папку XLStart.
- Наконец, найдите файл GWXL97.XLA и удалите его.
Зная, что существует множество причин ошибки времени выполнения 1004 в Excel, может сработать только одно решение. С помощью этого руководства теперь вы можете исправить ошибку времени выполнения Microsoft Excel 1004 и восстановить данные файла.
|
Возникает при переходе по ссылке из одного листа на другой |
|
|
Сергей Пользователь Сообщений: 11251 |
Юрий я не рунописец но пока начинаю это читать
Прикладывайте примеры Лень двигатель прогресса, доказано!!! |
||
|
Юрий М Модератор Сообщений: 60335 Контакты см. в профиле |
Юрий, я подправил название темы: так больше конкретики. Ведь с Вашим названием все вопросы по ошибкам можно смело задавать в Вашей теме. Так лучше? Ну почему бы самому не придумать нормальное название? |
|
Сергей Пользователь Сообщений: 11251 |
Юрий Глодовский, я почему говорю про пример и почему так быстро привел описание ошибки, потому что ща сам сижу втыкаю в неё, так ка записал макрорекодером макрос попытался его усовершенствовать и мне выдает такую фигню и я не думаю что мы с вами делаем одно и тоже Лень двигатель прогресса, доказано!!! |
|
Сергей, пример приложить не могу, так как там у меня вся рабочая база. Пробовал вынести это дело в отдельный файл, но ошибка не возникает, походу это конфликт макросов. |
|
|
Юрий М Модератор Сообщений: 60335 Контакты см. в профиле |
Начните с того, что прогоните код пошагово: для начала выясним — на какой строке и в какой процедуре возникает эта ошибка. |
|
Сергей Пользователь Сообщений: 11251 |
#7 16.05.2014 22:53:10
это не ко мне, сам тупил над такой же ошибкой около 30 минут, грохнул макрос рисую заново, но это чисто развлекуха под пиво к работе у меня ни как не относится Лень двигатель прогресса, доказано!!! |
||
|
Юрий Глодовский Пользователь Сообщений: 137 |
#8 16.05.2014 23:42:20 Юрий М, в третьей строке, тот что If Not Intersect…
|
||
|
Сергей Пользователь Сообщений: 11251 |
#9 16.05.2014 23:44:38
Юрий Глодовский, обращайте внимание на советы, если не знаете как это сделать, спрашивайте, дадут либо ссылку либо совет как это сделать, КОТ хоть и сидит со скелетом но форумчан редко ест Лень двигатель прогресса, доказано!!! |
||
|
Hugo Пользователь Сообщений: 23100 |
#10 16.05.2014 23:46:23 У меня нет ошибки.
кто его знает…
Изменено: Hugo — 17.05.2014 08:31:16 |
||||
|
Юрий М Модератор Сообщений: 60335 Контакты см. в профиле |
Без файла сложно, конечно… Лист «База» есть? |
|
Hugo Пользователь Сообщений: 23100 |
Юра, у меня листа База не было. В начале |
|
Сергей Пользователь Сообщений: 11251 |
вообще не уверен но со своей ошибкой кажись разобрался я когда писал рекодером копировал формулы из одного документа в другой, когда они оба были открыты макрос работал, после того как я закрыл файл из которого копировал формулы начал запускать макрос начала вылетать эта ошибка Лень двигатель прогресса, доказано!!! |
|
Юрий Глодовский Пользователь Сообщений: 137 |
#14 17.05.2014 00:00:16
Этот вариант помог. Большое спасибо. |
||
|
Юрий М Модератор Сообщений: 60335 Контакты см. в профиле |
#15 17.05.2014 00:02:43 Немного смущает несоответствие комментария и строки кода. Комментарий ошибку не вызовет, но всё же:
А проверяем столбец С. |
||
|
Сергей Пользователь Сообщений: 11251 |
#16 17.05.2014 00:13:50
в будущем может, на данном моменте эволюции понимания в VBA у меня даже таких строк нет Лень двигатель прогресса, доказано!!! |
||
|
Казанский Пользователь Сообщений: 8839 |
#17 17.05.2014 01:13:52 Замечу, что Target.Parent это Sh, который передается в процедуру.
|
||
Ошибка выполнения 1004 — это код ошибки, относящийся к Microsoft Visual Basic, который, как известно, влиял на пользователей Microsoft Excel. Как известно, эта ошибка наиболее распространена в Excel 2003 и Excel 2007, хотя ни одна из версий популярного приложения Microsoft для работы с электронными таблицами не защищена от угрозы «Ошибка времени выполнения 1004. В большинстве случаев пользователи, затронутые этой проблемой, видят одно из два различных варианта ошибки времени выполнения 1004. В целом два варианта ошибки времени выполнения 1004 имеют вид:
«Ошибка во время выполнения 4 1004 ’:
Не удалось скопировать метод класса листа»
«Ошибка во время выполнения 4 1004 ’:
Ошибка приложения или объекта»

Точное сообщение об ошибке, которое вы видите, может также немного отличаться, в некоторых случаях, хотя код ошибки останется прежним. Однако независимо от того, с какой версией проблемы вы столкнулись, она почти всегда возникает при запуске макроса в Excel, который предназначен для копирования рабочих листов и последующего размещения копий в той же рабочей книге, что и исходная рабочая таблица.
В отличие от наихудших технических проблем, причина ошибки 1004 во время выполнения в Microsoft Excel известна. Ошибка 1004 времени выполнения возникает, когда выполняемый макрос копирует исходную рабочую таблицу в рабочую книгу с определенным именем, которое вы не сохранили и не закрыли до запуска макроса. Пример такого макроса можно увидеть в следующем коде:
Sub CopySheetTest ()
Dim iTemp As Integer
Dim oBook As Workbook
Dim iCounter As Integer
Создать новую пустую книгу:
iTemp = Application.SheetsInNewWorkbook
Application.SheetsInNewWorkbook = 1
Set oBook = Application.Workbooks.Add
Application.SheetsInNewWorkbook = iTemp
Добавить определенное имя в книгу
'Относится к диапазону:
oBook.Names.Add Name: = "tempRange", _
RefersTo: = "= Лист1 $ A $ 1!"
Сохранить рабочую книгу:
oBook.SaveAs "c: test2.xls"
'Скопируйте лист в цикле. В конце концов,
'вы получите ошибку 1004: метод копирования
«Класс рабочего листа не выполнен.
Для iCounter = 1 до 275
oBook.Worksheets (1). Копия после: = oBook.Worksheets (1)
следующий
End Sub
Поскольку причина ошибки 1004 времени выполнения в контексте Microsoft Excel известна, также как и ее разрешение. В дополнение к решению этой проблемы пользователям, затронутым ею, также доступен обходной путь, который можно использовать в случае, если решение не работает или они не находят решение приемлемым вариантом.
Решение:
Решение этой конкретной проблемы состоит в том, чтобы просто отредактировать код макроса, который вы запускаете, чтобы он периодически сохранял и закрывал целевую рабочую книгу, пока она копирует рабочие листы. Код для макроса, который делает это, будет выглядеть примерно так:
Sub CopySheetTest ()
Dim iTemp As Integer
Dim oBook As Workbook
Dim iCounter As Integer
Создать новую пустую книгу:
iTemp = Application.SheetsInNewWorkbook
Application.SheetsInNewWorkbook = 1
Set oBook = Application.Workbooks.Add
Application.SheetsInNewWorkbook = iTemp
Добавить определенное имя в книгу
'Относится к диапазону:
oBook.Names.Add Name: = "tempRange", _
RefersTo: = "= Лист1 $ A $ 1!"
Сохранить рабочую книгу:
oBook.SaveAs "c: test2.xls"
'Скопируйте лист в цикле. В конце концов,
'вы получите ошибку 1004: метод копирования
«Класс рабочего листа не выполнен.
Для iCounter = 1 до 275
oBook.Worksheets (1). Копия после: = oBook.Worksheets (1)
«Раскомментируйте этот код для обходного пути:
«Сохранять, закрывать и открывать после каждых 100 итераций:
Если iCounter Mod 100 = 0, то
oBook.Close SaveChanges: = True
Set oBook = Nothing
Set oBook = Application.Workbooks.Open ("c: test2.xls")
End If
следующий
End Sub
Замечания: Точное количество раз, которое вы можете скопировать лист, прежде чем вам нужно будет сохранить и закрыть книгу, в которой сохраняются копии, варьируется от одного случая к другому, поскольку это зависит от размера листа, из которого вы делаете копии.
Обходной путь:
Как указывалось ранее, решение этой конкретной проблемы также существует. Чтобы обойти эту проблему, достаточно просто вставить новый лист из шаблона вместо создания копии существующего листа. Если вы хотите обойти эту проблему, вот что вам нужно сделать:
- запуск превосходить.
- Создать новую рабочую книгу и удалять каждый отдельный лист содержит только один.

- Формат Рабочая тетрадь.
- Добавьте любой текст, данные и / или диаграммы, которые вы хотите иметь в шаблоне по умолчанию, на единственный лист, который теперь содержит книга.
- Если вы используете Excel 2003 или более раннюю версию, нажмите на файл > Сохранить как. Если вы используете Excel 2007 или более поздней версии, с другой стороны, нажмите на Microsoft Office кнопку, а затем нажмите на Сохранить как.

- в Имя файла: В поле введите любой желаемый шаблон.
- Откройте раскрывающееся меню рядом с Сохранить как тип: поле и нажмите на превосходить Шаблон (.xlt) если вы используете Excel 2003 или более раннюю версию, или превосходить Шаблон (.xltx) если вы используете Excel 2007 или более поздней версии, чтобы выбрать его.

- Нажмите на Сохранить.

- После того, как вы успешно создали шаблон, вы можете вставить его программно, используя следующую строку кода:
Sheets.Add Type: =дорожкаимя файла
Замечания: В строке кода, описанной выше, путь имя_файла Необходимо заменить полным путем (включая полное имя файла) для местоположения шаблона листа, который вы только что создали.