- Ошибка VBA 1004
- Excel VBA Ошибка 1004
- Пример VBA Runtime Ошибка 1004 в Excel
- Ошибка выполнения VBA 1004 — Пример № 1
- Ошибка выполнения VBA 1004 — Пример № 2
- Ошибка выполнения VBA 1004 — Пример № 3
- Ошибка выполнения VBA 1004 — Пример № 4
- Ошибка выполнения VBA 1004 — Пример № 5
- То, что нужно запомнить
- Рекомендуемые статьи
- Как исправить ошибку во время выполнения 1004 в Excel —
- Решение:
- Обходной путь:
Ошибка VBA 1004
Excel VBA Ошибка 1004
Ошибка VBA 1004 — это ошибка, с которой мы сталкиваемся при выполнении кода в VBA. Он также известен как ошибка времени выполнения VBA. Когда мы работаем в VBA или на любом другом языке программирования или даже в нашей повседневной работе, мы сталкиваемся с различными видами ошибок. Иногда даже мы пропускаем один символ в коде, что приводит к тому, что весь код не работает или, возможно, весь код неверен.
Ошибки, безусловно, являются частью кода, который мы пишем. Это может быть непреднамеренным, но они существуют. Независимо от того, насколько мы профессиональны в кодировании, ошибки во время выполнения могут возникнуть где угодно. Как объяснено выше VBA 1004 Ошибка — это ошибка, которая возникает во время выполнения кода в Excel. Это также называется ошибкой приложения или объекта.
Существуют различные типы причин, по которым мы получаем VBA Runtime Error 1004 в Excel, давайте рассмотрим некоторые из них.
- Ошибка выполнения VBA 1004: сбой метода «Диапазон» объекта «_ Global»:
Эта ошибка возникает, когда значение диапазона, которое мы ссылаемся на VBA, неверно. Он также называется метод «Диапазон» объекта «_ Global» не удалось.
- Ошибка выполнения VBA 1004: это имя уже занято.Попробуйте другой:
Мы присваиваем одно и то же имя рабочему листу, который уже занесен другим рабочим листом.
- Ошибка выполнения VBA 1004: невозможно получить свойство select класса Range:
Это ошибка, когда мы выбираем диапазон на другом листе, не активируя тот лист, на который мы ссылаемся.
- Ошибка выполнения VBA 1004: сбой метода «Открыть» объекта «Книги»:
Эта ошибка возникает, когда мы пытаемся открыть рабочую книгу, которая уже открыта, или файл уже используется другой программой.
- Ошибка выполнения VBA 1004: извините, мы не смогли найти:
Мы получаем эту ошибку, когда пытаемся открыть лист, который не существует.
Как мы узнали, могут быть разные причины, по которым мы получаем ошибку во время выполнения. Ошибка выполнения может возникнуть в любой строке кода. Нам нужно научиться обрабатывать эти ошибки, и это называется VBA Error Handling.
Пример VBA Runtime Ошибка 1004 в Excel
Теперь, когда я описал различные типы ошибок, которые могут возникать во время выполнения любого кода VBA, теперь давайте изучим их, как они выглядят на примерах.
Вы можете скачать этот шаблон Excel с ошибкой VBA 1004 здесь — Шаблон Excel с ошибкой VBA 1004
Ошибка выполнения VBA 1004 — Пример № 1
- Давайте назовем этот заголовок таблицы как DATA .
- Перейдите на вкладку Разработчик, нажмите на Visual Basic, чтобы открыть VB Editor.
- Объявите подфункцию, чтобы начать писать код.
Код:
- Вызовите заголовок, который мы назвали следующим кодом, написанным ниже.
Код:
- Когда мы запускаем код, мы видим в Excel, что он был выбран, поскольку мы правильно вызвали заголовок.
- Теперь мы неправильно написали орфографию имени заголовка.
Код:
- Запустите код еще раз, чтобы увидеть результат.
Мы получаем Excel VBA Runtime Ошибка 1004, потому что мы неправильно написали имя диапазона.
Ошибка выполнения VBA 1004 — Пример № 2
Мы получаем эту ошибку, когда пытаемся переименовать лист с именем, которое уже занято. Например, я переименовал лист 1 в « Ананд », и я постараюсь переименовать лист 2 в тот же, чтобы увидеть результат.
- Перейдите на вкладку Разработчик, нажмите на Visual Basic, чтобы открыть VB Editor.
- Объявите подфункцию, чтобы начать писать код.
Код:
- Попробуйте переименовать лист 2 в Anand с помощью следующего кода ниже,
Код:
- Запустите приведенный выше код и посмотрите результат.
Когда я пытаюсь переименовать лист с именем, которое уже занято, я получаю сообщение об ошибке.
Ошибка выполнения VBA 1004 — Пример № 3
Я попытаюсь добавить значение из листа 2 к переменной на листе 3. Но я не буду активировать лист 2 и посмотрю, что произойдет.
- Перейдите на вкладку Разработчик, нажмите на Visual Basic, чтобы открыть VB Editor.
- Объявите подфункцию, чтобы начать писать код.
Код:
- Объявите две переменные A и B как целое число.
Код:
- В переменной B сохраните значение A в дополнение к ячейке A1 листа 2.
Код:
- Давайте предположим, что код работает, и используем функцию msgbox для отображения значения B.
Код:
- Запустите код, чтобы увидеть полученный результат.
Мы получаем эту ошибку, потому что мы не активировали лист 2, но мы пытаемся использовать значение листа 2.
Ошибка выполнения VBA 1004 — Пример № 4
Мы сталкиваемся с этой ошибкой во время выполнения, когда у нас уже открыто одно и то же имя рабочей книги, но мы пытаемся открыть ее снова.
В этом примере я уже переименовал свою книгу в VBA 1004 Error.xlsm, и я попытаюсь снова открыть ее, которая уже открыта, и посмотреть, получу ли я ошибку VBA 1004.
- Перейдите на вкладку Разработчик, нажмите на Visual Basic, чтобы открыть VB Editor.
- Объявите подфункцию, чтобы начать писать код.
Код:
- Объявите переменную в качестве рабочей книги.
Код:
Попробуйте открыть книгу, которую мы уже открыли, с помощью следующего кода.
Код:
Запустите приведенный выше код, чтобы увидеть результат.
Мы получаем эту ошибку, потому что мы уже открыли ту же книгу.
Ошибка выполнения VBA 1004 — Пример № 5
Мы получаем эту ошибку, когда пытаемся открыть книгу, которой не существует. Это в некоторой степени похоже на приведенную выше ошибку, поскольку VBA не может найти книгу.
- Перейдите на вкладку Разработчик, нажмите на Visual Basic, чтобы открыть VB Editor.
- Объявите подфункцию, чтобы начать писать код.
Код:
- Попробуйте открыть любую книгу с помощью следующего кода,
Код:
- Я уже удалил лист с места.
- Запустите код, чтобы увидеть результат.
Поскольку лист не существует в данном месте, мы получаем эту ошибку.
То, что нужно запомнить
- Всегда проверяйте на наличие орфографических ошибок.
- Не переименовывайте несколько листов с одинаковыми именами.
- Перед звонком по любой другой ссылке обязательно активируйте соответствующий лист.
- Прежде чем пытаться открыть любой другой лист, убедитесь, что указан правильный путь.
Рекомендуемые статьи
Это было руководство к VBA 1004 Ошибка. Здесь мы обсудили Excel VBA Runtime Error 1004 вместе с практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи —
- Добавить или удалить панель ошибок в Excel
- VBA Пока Loop | MS Excel
- Понимание ошибок в Excel
- Использование IFError в VBA
Источник
Как исправить ошибку во время выполнения 1004 в Excel —
Ошибка выполнения 1004 — это код ошибки, относящийся к Microsoft Visual Basic, который, как известно, влиял на пользователей Microsoft Excel. Как известно, эта ошибка наиболее распространена в Excel 2003 и Excel 2007, хотя ни одна из версий популярного приложения Microsoft для работы с электронными таблицами не защищена от угрозы «Ошибка времени выполнения 1004. В большинстве случаев пользователи, затронутые этой проблемой, видят одно из два различных варианта ошибки времени выполнения 1004. В целом два варианта ошибки времени выполнения 1004 имеют вид:
«Ошибка во время выполнения 4 1004 ’:
Не удалось скопировать метод класса листа»
«Ошибка во время выполнения 4 1004 ’:
Ошибка приложения или объекта»
Точное сообщение об ошибке, которое вы видите, может также немного отличаться, в некоторых случаях, хотя код ошибки останется прежним. Однако независимо от того, с какой версией проблемы вы столкнулись, она почти всегда возникает при запуске макроса в Excel, который предназначен для копирования рабочих листов и последующего размещения копий в той же рабочей книге, что и исходная рабочая таблица.
В отличие от наихудших технических проблем, причина ошибки 1004 во время выполнения в Microsoft Excel известна. Ошибка 1004 времени выполнения возникает, когда выполняемый макрос копирует исходную рабочую таблицу в рабочую книгу с определенным именем, которое вы не сохранили и не закрыли до запуска макроса. Пример такого макроса можно увидеть в следующем коде:
Поскольку причина ошибки 1004 времени выполнения в контексте Microsoft Excel известна, также как и ее разрешение. В дополнение к решению этой проблемы пользователям, затронутым ею, также доступен обходной путь, который можно использовать в случае, если решение не работает или они не находят решение приемлемым вариантом.
Решение:
Решение этой конкретной проблемы состоит в том, чтобы просто отредактировать код макроса, который вы запускаете, чтобы он периодически сохранял и закрывал целевую рабочую книгу, пока она копирует рабочие листы. Код для макроса, который делает это, будет выглядеть примерно так:
Замечания: Точное количество раз, которое вы можете скопировать лист, прежде чем вам нужно будет сохранить и закрыть книгу, в которой сохраняются копии, варьируется от одного случая к другому, поскольку это зависит от размера листа, из которого вы делаете копии.
Обходной путь:
Как указывалось ранее, решение этой конкретной проблемы также существует. Чтобы обойти эту проблему, достаточно просто вставить новый лист из шаблона вместо создания копии существующего листа. Если вы хотите обойти эту проблему, вот что вам нужно сделать:
- запуск превосходить.
- Создать новую рабочую книгу и удалять каждый отдельный лист содержит только один.
- Формат Рабочая тетрадь.
- Добавьте любой текст, данные и / или диаграммы, которые вы хотите иметь в шаблоне по умолчанию, на единственный лист, который теперь содержит книга.
- Если вы используете Excel 2003 или более раннюю версию, нажмите на файл >Сохранить как. Если вы используете Excel 2007 или более поздней версии, с другой стороны, нажмите на Microsoft Office кнопку, а затем нажмите на Сохранить как.
- в Имя файла: В поле введите любой желаемый шаблон.
- Откройте раскрывающееся меню рядом с Сохранить как тип: поле и нажмите на превосходитьШаблон (.xlt) если вы используете Excel 2003 или более раннюю версию, или превосходитьШаблон (.xltx) если вы используете Excel 2007 или более поздней версии, чтобы выбрать его.
- Нажмите на Сохранить.
- После того, как вы успешно создали шаблон, вы можете вставить его программно, используя следующую строку кода:
Sheets.Add Type: =дорожка\имя файла
Замечания: В строке кода, описанной выше, путь \ имя_файла Необходимо заменить полным путем (включая полное имя файла) для местоположения шаблона листа, который вы только что создали.
Источник