Ошибка runtime error 424 object required

This repo is no longer accepting new issues. To request changes, you can create a branch, make changes, then submit a PR. For more resources, see README.MD - VBA-Docs/object-required-error-424.md a...

Permalink

Cannot retrieve contributors at this time

title keywords f1_keywords ms.prod ms.assetid ms.date ms.localizationpriority

Object required (Error 424)

vblr6.chm1000424

vblr6.chm1000424

office

282292d7-d147-b71e-4d1e-149af7da8f7e

06/08/2017

medium

References to properties and methods often require an explicit object qualifier. This error has the following causes and solutions:

  • You referred to an object property or method, but didn’t provide a valid object qualifier. Specify an object qualifier if you didn’t provide one. For example, although you can omit an object qualifier when referencing a form property from within the form’s own module, you must explicitly specify the qualifier when referencing the property from a standard module.

  • You supplied an object qualifier, but it isn’t recognized as an object. Check the spelling of the object qualifier and make sure the object is visible in the part of the program in which you are referencing it. In the case of Collection objects, check any occurrences of the Add method to be sure the syntax and spelling of all the elements are correct.

  • You supplied a valid object qualifier, but some other portion of the call contained an error. An incorrect path as an argument to a host application’s File Open command could cause the error. Check arguments.

  • You didn’t use the Set statement in assigning an object reference. If you assign the return value of a CreateObject call to a Variant variable, an error doesn’t necessarily occur if the Set statement is omitted. In the following code example, an implicit instance of Microsoft Excel is created, and its default property (the string «Microsoft Excel») is returned and assigned to the Variant RetVal. A subsequent attempt to use RetVal as an object reference causes this error:

      Dim RetVal ' Implicitly a Variant. 
      ' Default property is assigned to Type 8 Variant RetVal. 
      RetVal = CreateObject("Excel.Application") 
      RetVal.Visible = True ' Error occurs here. 

    Use the Set statement when assigning an object reference.

  • In rare cases, this error occurs when you have a valid object but are attempting to perform an invalid action on the object. For example, you may receive this error if you try to assign a value to a read-only property. Check the object’s documentation and make sure the action you are trying to perform is valid.

For additional information, select the item in question and press F1 (in Windows) or HELP (on the Macintosh).

[!includeSupport and feedback]

В этой статье представлена ошибка с номером Ошибка 424, известная как Требуется объект, описанная как Ссылки на свойства и методы часто требуют явного квалификатора объекта.

О программе Runtime Ошибка 424

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

Определения (Бета)

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

  • Явный — в C ++ определяет конструкторы и операторы преобразования, которые не допускают неявные преобразования или инициализацию копирования.
  • Методы — A Метод, часто называемый функцией, подпрограммой или процедурой, — это код, который выполняет задачу и связан с классом или объектом.
  • Объект — объект — это любой объект, которым можно управлять с помощью команды на языке программирования.
  • Свойства . В некоторых объектно-ориентированных языках программирования свойство представляет собой особый вид члена класса, промежуточный между полем или членом данных и методом
  • Требовать — в интерпретируемых языках, таких как Lua, PHP и Ruby, «require» — это инструкция, которая сообщает интерпретатору включить определенный исходный файл в ту позицию, где «require» «оператор был размещен.
  • Обязательно — Обязательный атрибут HTML элемента ввода, который заставляет вводить данные.
  • Ссылки — Ссылка — это значение, которое позволяет программе Непосредственный доступ к определенным данным, таким как переменная или запись, в памяти компьютера или на каком-либо другом запоминающем устройстве.

Симптомы Ошибка 424 — Требуется объект

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

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

Fix Требуется объект (Error Ошибка 424)
(Только для примера)

Причины Требуется объект — Ошибка 424

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

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

Методы исправления

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

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

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

Метод 1 — Закройте конфликтующие программы

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

  • Откройте диспетчер задач, одновременно нажав Ctrl-Alt-Del. Это позволит вам увидеть список запущенных в данный момент программ.
  • Перейдите на вкладку «Процессы» и остановите программы одну за другой, выделив каждую программу и нажав кнопку «Завершить процесс».
  • Вам нужно будет следить за тем, будет ли сообщение об ошибке появляться каждый раз при остановке процесса.
  • Как только вы определите, какая программа вызывает ошибку, вы можете перейти к следующему этапу устранения неполадок, переустановив приложение.

Метод 2 — Обновите / переустановите конфликтующие программы

Использование панели управления

  • В Windows 7 нажмите кнопку «Пуск», затем нажмите «Панель управления», затем «Удалить программу».
  • В Windows 8 нажмите кнопку «Пуск», затем прокрутите вниз и нажмите «Дополнительные настройки», затем нажмите «Панель управления»> «Удалить программу».
  • Для Windows 10 просто введите «Панель управления» в поле поиска и щелкните результат, затем нажмите «Удалить программу».
  • В разделе «Программы и компоненты» щелкните проблемную программу и нажмите «Обновить» или «Удалить».
  • Если вы выбрали обновление, вам просто нужно будет следовать подсказке, чтобы завершить процесс, однако, если вы выбрали «Удалить», вы будете следовать подсказке, чтобы удалить, а затем повторно загрузить или использовать установочный диск приложения для переустановки. программа.

Использование других методов

  • В Windows 7 список всех установленных программ можно найти, нажав кнопку «Пуск» и наведя указатель мыши на список, отображаемый на вкладке. Вы можете увидеть в этом списке утилиту для удаления программы. Вы можете продолжить и удалить с помощью утилит, доступных на этой вкладке.
  • В Windows 10 вы можете нажать «Пуск», затем «Настройка», а затем — «Приложения».
  • Прокрутите вниз, чтобы увидеть список приложений и функций, установленных на вашем компьютере.
  • Щелкните программу, которая вызывает ошибку времени выполнения, затем вы можете удалить ее или щелкнуть Дополнительные параметры, чтобы сбросить приложение.

Метод 3 — Обновите программу защиты от вирусов или загрузите и установите последнюю версию Центра обновления Windows.

Заражение вирусом, вызывающее ошибку выполнения на вашем компьютере, необходимо немедленно предотвратить, поместить в карантин или удалить. Убедитесь, что вы обновили свою антивирусную программу и выполнили тщательное сканирование компьютера или запустите Центр обновления Windows, чтобы получить последние определения вирусов и исправить их.

Метод 4 — Переустановите библиотеки времени выполнения

Вы можете получить сообщение об ошибке из-за обновления, такого как пакет MS Visual C ++, который может быть установлен неправильно или полностью. Что вы можете сделать, так это удалить текущий пакет и установить новую копию.

  • Удалите пакет, выбрав «Программы и компоненты», найдите и выделите распространяемый пакет Microsoft Visual C ++.
  • Нажмите «Удалить» в верхней части списка и, когда это будет сделано, перезагрузите компьютер.
  • Загрузите последний распространяемый пакет от Microsoft и установите его.

Метод 5 — Запустить очистку диска

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

  • Вам следует подумать о резервном копировании файлов и освобождении места на жестком диске.
  • Вы также можете очистить кеш и перезагрузить компьютер.
  • Вы также можете запустить очистку диска, открыть окно проводника и щелкнуть правой кнопкой мыши по основному каталогу (обычно это C :)
  • Щелкните «Свойства», а затем — «Очистка диска».

Метод 6 — Переустановите графический драйвер

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

  • Откройте диспетчер устройств и найдите драйвер видеокарты.
  • Щелкните правой кнопкой мыши драйвер видеокарты, затем нажмите «Удалить», затем перезагрузите компьютер.

Метод 7 — Ошибка выполнения, связанная с IE

Если полученная ошибка связана с Internet Explorer, вы можете сделать следующее:

  1. Сбросьте настройки браузера.
    • В Windows 7 вы можете нажать «Пуск», перейти в «Панель управления» и нажать «Свойства обозревателя» слева. Затем вы можете перейти на вкладку «Дополнительно» и нажать кнопку «Сброс».
    • Для Windows 8 и 10 вы можете нажать «Поиск» и ввести «Свойства обозревателя», затем перейти на вкладку «Дополнительно» и нажать «Сброс».
  2. Отключить отладку скриптов и уведомления об ошибках.
    • В том же окне «Свойства обозревателя» можно перейти на вкладку «Дополнительно» и найти пункт «Отключить отладку сценария».
    • Установите флажок в переключателе.
    • Одновременно снимите флажок «Отображать уведомление о каждой ошибке сценария», затем нажмите «Применить» и «ОК», затем перезагрузите компьютер.

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

Другие языки:

How to fix Error 424 (Object required) — References to properties and methods often require an explicit object qualifier.
Wie beheben Fehler 424 (Objekt benötigt) — Verweise auf Eigenschaften und Methoden erfordern oft einen expliziten Objektqualifizierer.
Come fissare Errore 424 (Oggetto necessario) — I riferimenti a proprietà e metodi spesso richiedono un qualificatore di oggetto esplicito.
Hoe maak je Fout 424 (Object nodig) — Verwijzingen naar eigenschappen en methoden vereisen vaak een expliciete objectkwalificatie.
Comment réparer Erreur 424 (Objet requis) — Les références aux propriétés et aux méthodes nécessitent souvent un qualificateur d’objet explicite.
어떻게 고치는 지 오류 424 (개체 필요) — 속성 및 메서드에 대한 참조에는 종종 명시적 개체 한정자가 필요합니다.
Como corrigir o Erro 424 (Objeto requerido) — As referências a propriedades e métodos geralmente requerem um qualificador de objeto explícito.
Hur man åtgärdar Fel 424 (Objekt krävs) — Hänvisningar till egenskaper och metoder kräver ofta en uttrycklig objektkvalificering.
Jak naprawić Błąd 424 (Obiekt wymagany) — Odwołania do właściwości i metod często wymagają jawnego kwalifikatora obiektu.
Cómo arreglar Error 424 (Objeto requerido) — Las referencias a propiedades y métodos a menudo requieren un calificador de objeto explícito.

The Author Об авторе: Фил Харт является участником сообщества Microsoft с 2010 года. С текущим количеством баллов более 100 000 он внес более 3000 ответов на форумах Microsoft Support и создал почти 200 новых справочных статей в Technet Wiki.

Следуйте за нами: Facebook Youtube Twitter

Рекомендуемый инструмент для ремонта:

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

ШАГ 1:

Нажмите здесь, чтобы скачать и установите средство восстановления Windows.

ШАГ 2:

Нажмите на Start Scan и позвольте ему проанализировать ваше устройство.

ШАГ 3:

Нажмите на Repair All, чтобы устранить все обнаруженные проблемы.

СКАЧАТЬ СЕЙЧАС

Совместимость

Требования

1 Ghz CPU, 512 MB RAM, 40 GB HDD
Эта загрузка предлагает неограниченное бесплатное сканирование ПК с Windows. Полное восстановление системы начинается от $19,95.

ID статьи: ACX09107RU

Применяется к: Windows 10, Windows 8.1, Windows 7, Windows Vista, Windows XP, Windows 2000

Совет по увеличению скорости #88

Обновление вашего графического процессора:

Обновите графическую карту (GPU) вашего компьютера, чтобы повысить производительность даже с устаревшим процессором. Установить новый графический процессор — простая задача. Этот процесс включает всего 3 шага: вытаскивание старой видеокарты, установка новой, установка необходимых драйверов — и затем все готово.

Нажмите здесь, чтобы узнать о другом способе ускорения работы ПК под управлением Windows

Home / VBA / VBA Object Required Error (Error 424)

When VBA is not able to recognize the object for which you are referring to the property or a method it shows you the Object Required error. In simple words, if you refer to an object, but the name of that object is not correct (that object is not in the VBA’s object hierarchy) it shows error 424, like the following.

In the above code, as you can see, I have misspelled the active cell object, and when VBA’s executes that line of code can’t that object because there’s no object with that name (as I have misspelled it).

Note: If you have used the Option Explicit statement in the module then with the same, you’ll get a different error (see image below).

Used “Set” Keyword for a Non-Object Variable

When you use a variable to assign an object to it, you need to use the keyword “Set”. In the following example, you have a myWKS for the worksheet and iVal for the value from cell A1.

As you can see, in the above code you have variables out of which one is declared as a worksheet object and the second as a string. But at the time of assigning the value, we have used the “Set” keyword to the variable “iVal” which is not declared as an object but as a string.

How to Fix Object Required (Error 424) in VBA

  1. Go to the Debug menu in your visual basic editor.
  2. Use the step to run the entire code step by step.
  3. The moment you reach the line where you have an error VBA will show you an error.
  4. Correct that line of code.

The other way could be going through the code line by line by reading it to make sure you are referring to the right objects and using the correct name of the variables and objects.

You can also use the GOTO statement to surpass an error or show a message to the users once an error occurred.

More on VBA Errors

Subscript Out of Range (Error 9) | Type Mismatch (Error 13) | Runtime (Error 1004) | Out of Memory (Error 7) | Object Doesn’t Support this Property or Method (Error 438) | Invalid Procedure Call Or Argument (Error 5) | Overflow (Error 6) | Automation error (Error 440) | VBA Error 400

 

FeelingThis

Пользователь

Сообщений: 5
Регистрация: 23.09.2016

#1

23.09.2016 23:24:49

Доброго времени суток. Столкнулся с такой проблемой, при выполнении выкидывает на выделенной строке с Run-Time Error «424»: Object Required:

Код
Sub Test() 
... 
Dim frmtRange As Range 
Set frmtRange = Range(Cells(1, BiggerColumn), Cells(LR, BiggerColumn + 1)) 
Format (frmtRange) 
End Sub 

Function Format(fRange as Range) 
... 
End Function

В чем может быть проблема? Грешу на третью строку, может неправильно задал объект frmtRange(переменные BiggerColumn и LR в порядке).

Изменено: FeelingThis23.09.2016 23:30:10

 

Sanja

Пользователь

Сообщений: 14837
Регистрация: 10.01.2013

А что Вы хотите от 4-й строки?

Согласие есть продукт при полном непротивлении сторон.

 

Sanja

Пользователь

Сообщений: 14837
Регистрация: 10.01.2013

Format — служебное слово VBA. В разных случаях это может быть функцией/свойством, и использование его в качестве названия для своей функции и есть ошибка

Согласие есть продукт при полном непротивлении сторон.

 

FeelingThis

Пользователь

Сообщений: 5
Регистрация: 23.09.2016

Чтобы в frmtRange записался диапазон данных Cells(1, BiggerColumn), Cells(LR, BiggerColumn + 1)
И затем все это дело отправилось на обработку в функцию

Изменено: FeelingThis23.09.2016 23:30:58

 

Jungl

Пользователь

Сообщений: 830
Регистрация: 18.01.2016

#5

23.09.2016 23:31:23

FeelingThis,

Код
arr = Format(frmtRange)
 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

FeelingThis, кнопка форматирования кода другая — <…>

Sanja, возможно, строка съехала

 

FeelingThis

Пользователь

Сообщений: 5
Регистрация: 23.09.2016

Спасибо за замечание, название функции поменял, но проблема не изчезла

 

Sanja

Пользователь

Сообщений: 14837
Регистрация: 10.01.2013

Вы присвойте результат работы Вашей функции чему нибудь, как пишет Jungl,
Да и саму UDF не помешало-бы посмотреть

Согласие есть продукт при полном непротивлении сторон.

 

FeelingThis

Пользователь

Сообщений: 5
Регистрация: 23.09.2016

Jungl

,
спасибо большое, это помогло

 

Sanja

Пользователь

Сообщений: 14837
Регистрация: 10.01.2013

#10

23.09.2016 23:37:47

Цитата
vikttur написал: возможно, строка съехала

в таком случае — от 5-й

Согласие есть продукт при полном непротивлении сторон.

 

Ігор Гончаренко

Пользователь

Сообщений: 13286
Регистрация: 01.01.1970

#11

23.09.2016 23:40:26

Цитата
название функции поменял, но проблема не изчезла

проблемы закончатся, когда Вы перестанете программировать

Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!

 

FeelingThis

Пользователь

Сообщений: 5
Регистрация: 23.09.2016

#12

23.09.2016 23:42:15

Цитата
Sanja написал: в таком случае — от 5-й

требовалось передать диапазон в функцию

 

Jungl

Пользователь

Сообщений: 830
Регистрация: 18.01.2016

#13

23.09.2016 23:55:42

FeelingThis, смотря что вы хотите получить от функции, это вам виднее.
Ведь можно и обойтись передачей параметров оператору Sub через ByRef

Код
Sub Test()
Dim frmtRange As Range
Set frmtRange = Range(Cells(1, 1), Cells(2, 1))
Frmt frmtRange
End Sub
 
Sub Frmt(ByRef fRange As Range)
arr = fRange
End Sub
 

ZVI

Пользователь

Сообщений: 4328
Регистрация: 23.12.2012

#14

24.09.2016 02:44:56

Поясню, в чём проблема.
1. Сначала о синтаксисе. Вместо Frmt (frmtRange) должно быть либо Frmt frmtRange либо Call Frmt(frmtRange)
Обратите внимание на то, что VBA вставляет пробел в первом случае между Frmt и  (frmtRange), а в случае с Call пробела нет.
2. Теперь о преобразовании типов. Взятие в скобки переменной (см. первый случай) создает временную (runtime) переменную типа Variant, то есть меняет тип передаваемого в функцию параметра с Range на Variant, что и вызывает ошибку несоответствия типов.
Вот код для подтверждения такого преобразования типов:

Код
Sub Test1()
  Dim frmtRange As Range
  Set frmtRange = Range(Cells(1, 1), Cells(2, 1))
  Debug.Print TypeName(frmtRange), TypeName((frmtRange))
End Sub

Выдаст такое: Range         Variant()

Изменено: ZVI24.09.2016 02:47:17

  • Remove From My Forums
  • Question

  • I do not understand why I am receiving the above run-time error. i must be violating a basic

    principle of VBA (2003)

    When I look at the workbook immediately after I receive the run-time error I see a copy of the desired worksheet placed exactly where it should be, but the code never ran far enough to rename the worksheet.

    Sub invert()

            
        Dim aworkbook As Workbook
        Dim newWorksheet As Worksheet

        
        MsgBox («Workbooks(1) =» & Workbooks(1).Name)  ‘ confirm correct workbook exists
        With Workbooks(«AWorkbook.xls»)
            Set newWorksheet = .Worksheets(«Aworksheet»).Copy( _
            After:=.Worksheets(«aworksheet»))

    ‘ ERROR OCCURS AFTER EXECUTING THE ABOVE LINE OF CODE
            newWorksheet.Name = «Inverted Aworksheet»
        End With

    ‘ code that inverts data within newWorksheet

    end sub

    please help me.

    Thank you

    Bil

Answers

  • Bill,

    not sure how to handle it exactly like you are attempting but this will do the trick in a few steps

     Dim CurWorkbook As Workbook: Set CurWorkbook = Workbooks("Book1")
     Dim newWorksheet As Worksheet
     With CurWorkbook
     .Sheets("Sheet1").Copy Before:=.Sheets(1)
     Set newWorksheet = .Sheets(1)
     newWorksheet.Name = "test"
     .Sheets("test").Move After:=.Sheets("Sheet1")
     End With

    the idea is to use something we know is consistent.  sheets(1) will always be the first sheet in the list so we can just set the newly copied sheet before the first sheet, which now makes the copied sheet the new first sheet.  then we
    can get the copied sheet (aka the first sheet) and move it after the original sheet that was copied.

    hope that makes sense.  I am sure there is a way to do it similar to how you are attempting, and i have seen something similar with worksheets.add, but did not come across any examples to set a new sheet object as a copy all in one statement. 
    not sure about that one, as i got the same error trying a few things close to yours.

    hope this helps


    • Marked as answer by

      Wednesday, May 5, 2010 7:25 AM

Понравилась статья? Поделить с друзьями:
  • Ошибка runtime error 339 windows 10
  • Ошибка runtime error 339 mscomctl ocx как исправить
  • Ошибка runtime error 217 at 004bb10d autodata как исправить
  • Ошибка runtime error 13 type mismatch как исправить
  • Ошибка runtime error 1004 vba