Runtime error 1004 нельзя установить свойство hidden класса range

Обновлено: 05.07.2024

«Ошибка во время выполнения 4 1004 ’:
Не удалось скопировать метод класса листа»

«Ошибка во время выполнения 4 1004 ’:
Ошибка приложения или объекта»


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

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

Решение:

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

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

Обходной путь:

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

  1. запуск превосходить.
  2. Создать новую рабочую книгу и удалять каждый отдельный лист содержит только один.
  3. Формат Рабочая тетрадь.
  4. Добавьте любой текст, данные и / или диаграммы, которые вы хотите иметь в шаблоне по умолчанию, на единственный лист, который теперь содержит книга.
  5. Если вы используете Excel 2003 или более раннюю версию, нажмите на файл >Сохранить как. Если вы используете Excel 2007 или более поздней версии, с другой стороны, нажмите на Microsoft Office кнопку, а затем нажмите на Сохранить как.
  6. в Имя файла: В поле введите любой желаемый шаблон.
  7. Откройте раскрывающееся меню рядом с Сохранить как тип: поле и нажмите на превосходитьШаблон (.xlt) если вы используете Excel 2003 или более раннюю версию, или превосходитьШаблон (.xltx) если вы используете Excel 2007 или более поздней версии, чтобы выбрать его.
  8. Нажмите на Сохранить.
  9. После того, как вы успешно создали шаблон, вы можете вставить его программно, используя следующую строку кода:
    Sheets.Add Type: =дорожка\имя файла

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

При попытке защиты ячейки выскакивает ошибка Error 1004 Нельзя установить свойство Locked класса Range. Перепроверила уже все и вся, никак не могу понять причину. Помогите!

__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь

Ошибка 1004 при печати
Почему то не печатает выделенную область Sheets("Заказы с истекшим сроком").Activate .


Ошибка 1004 записи формулы при изменении типа переменной
Dim sb As Currency ' НАКОПЛЕННАЯ СУММА БЕЛКОВ одного приема В ГРАММАХ sb = 6.9 .

Ошибка Run-time error '1004' при записи массива на лист
Добрый день Подскажите почему вылетает такая ошибка Run-time error '1004' Application-defined or.

При копировании данных с одной книги в другую возникает ошибка 1004
Здравствуйте! Подскажите пожалуйста, где я сделала ошибку? Private Sub CommandButton1_Click() Dim.

Изначально все ячейки защищены, но без защиты листа можно вносить изменения в ячейки до установки пароля (может быть и пустой пароль) на лист. Поэтому снятие защиты с листа позволяет изменять ячейки любым образом. Есть ли смысл экспериментировать со свойством Locked. Изначально все ячейки защищены, но без защиты листа можно вносить изменения в ячейки до установки пароля (может быть и пустой пароль) на лист. Поэтому снятие защиты с листа позволяет изменять ячейки любым образом. Есть ли смысл экспериментировать со свойством Locked. Мне нужно, чтобы сначала (при первом цикле) определенная ячейка защищалась(т.е. ее нельзя было изменить), а при втором цикле защищался весь лист. Если подскажете, как это сделать, буду безмерно благодарна. Мне не нужна защита всего листа, мне нужна защита одной ячейки а уже потом листа. То есть это должны быть разные процедуры. Одновременно защищенные и незащищенные ячейки могут быть только на защищенном листе! Так покажите нам, как защитить ячейку не защищая лист именно инструментом "Защита". Можно без макросов, руками. Так, чтоб ее нельзя было редактировать на незащищенном листе. Думаю, для всех это будет очень познавательно. Если установить на файл флажок " Пометить как окончательный" тогда невозможно редактировать файл и в т.ч. и лист до снятия этого флажка.

В Вашем случае 1004 - это попытка изменения атрибута защиты ячейки или области при неснятой защите листа. Почему? Так, как у Вас в алгоритме неверно проставлены окончания циклов Next. Кроме того, под Next у Вас попадают и некоторые Dimensions.

toiai, прав. Но можно действительно сделать разные процедуры. Защита листа предусматривает опции исключений. Таким образом она будет влиять только на одну защищаемую ячейку.
Какого рода защиту Вы хотите поставить? Если только от изменеия данных (не форматирования), можно так:

Процедура 1. Защита ячейки [A1]
0) Если лист защищен - снимаем защиту.
1) Снятие защиты со всех ячеек.
2) Установка защиты на ячейку А1
3) Защита листа с опциями исключения всех видов защит, кроме изменения данных.

Эта процедура делает все вышесказанное при передаче ей параметров Y, X

Также не рекомендую Вам использовать метод Activate (который у Вас тоже попал под цикл), а по возможности и метод Select тоже. Это вызовет мельтешение и замедление работы. Можно обращаться к ячейкам напрямую.


Ошибка 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

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


  • Давайте назовем этот заголовок таблицы как 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 1004 обычно появляется при работе с поврежденным документом. Эта ошибка также появляется, если вы открываете файл Excel VBA, когда ваш Excel конфликтует с другими программами.

VB: ошибка времени выполнения "1004": ошибка, определенная приложением или объектом

Excel VBA Runtime ошибка 1004 «Ошибка при выборе метода класса Range»

ошибка во время выполнения 1004 _Глобальный диапазон методов объекта не удалось Visual Basic

Макрос Excel «Ошибка выполнения‘ 1004 »

Ошибка выполнения 1004 метод открытия книги объектов с ошибками

Ошибка во время выполнения ‘1004’: метод «Ranger» объекта ’Worksheet’ Failed

Сохранить как среду выполнения VBA Ошибка 1004: ошибка приложения или объекта

1. Удалите Microsoft Works

2. Создайте другой шаблон Excel

открытый новый рабочий лист-первенствует-среду-ошибка-1004

  1. Запустите Microsoft Excel на своем компьютере.
  2. Затем создайте новую книгу Microsoft Excel, нажав CTRL + N комбинация или выбор Пустая книга с первого экрана.
  3. После создания книги удалите все, кроме одного листа из книги.
  4. Отформатируйте эту книгу, которую вы сохранили.
    • Вы можете изменить эту книгу в соответствии с вашими потребностями.
  5. Наконец, перейдите к Файл> Сохранить как сохранить файл с Формат файла шаблона Excel (.xltx или .xlt),
    • Используйте этот формат для Excel в 2017 году и более поздних версиях.
  6. Когда документ успешно сохранен, вы можете вставить шаблон с помощью этого кода:

Не забудьте заменить имя файла с реальным названием документа.

3. Удалить GWXL97.XLA

Часто задаваемые вопросы: узнайте больше об ошибках во время выполнения

  • В чем разница между временем выполнения и ошибкой времени компиляции?
  • Что может вызвать ошибки во время выполнения?

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

Некоторые люди жаловались на Excel ошибка времени выполнения 1004. С самого начала эта ошибка может показаться серьезной проблемой, но по правде говоря, это больше отвлекает, чем что-либо еще. Ошибка времени выполнения 1004 может возникнуть, если Excel не получает доступ к Microsoft Visual Basic для приложений (VBA) или макросам.

Ошибка Excel 1004

Что такое ошибка времени выполнения 1004 в Excel

  • Ошибка выполнения 1004: ошибка, определяемая приложением или объектом
  • Ошибка выполнения 1004: сбой метода копирования класса листа
  • Ошибка 1004: программный доступ к проекту Visual Basic не является доверенным.

Первое, что вам здесь потребуется, это открыть Параметры Excel, что очень просто. Просто откройте Microsoft Excel, затем нажмите «Файл» и выберите «Параметры».


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

Сразу должен появиться раздел Параметры доверия. Оттуда выберите Настройки макроса.


Наконец, нажмите на Доверять доступ к объектной модели проекта VBA, затем нажмите Ok кнопку и все тут.

Сканирование на наличие вредоносных программ

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

Читайте также: