Error 424 macros excel

 

Доброго всем времени суток.  
Не могу справиться с экселевским файлом с макросами, при попытке задействовать макрос всплявает ошибка «run-time error 424: object required». Интересно что данный файл работает на 2-х других компах, а на менеджерском компе и моем личном ноуте отказывается работать.  
ПРедлагает отладить макрос и выделяет следующие строчки кода» SubsList.ListItems.Clear  
SubsList.ColumnHeaders.Clear»  

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

 

Юрий М

Модератор

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

Контакты см. в профиле

{quote}{login=}{date=09.07.2012 01:42}{post}какие части кода надо скинуть, весь файл не могу- политика безопасности суровая штука…{/post}{/quote}Меняем на листе с данными патроны на огурцы. и показываем файл.

 

mini_adm

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

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

Пардон за орфографию и что тема без автора вышла.  

  ps не уверен что дело в коде, мне кажется что где то есть различия в настройках Exсel»ей, так как файл рабочий, но не на всех компах.

 

Hugo

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

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

С ListView проблема?  
Попробуйте добавить в проект на форму этот элемент, затем удалить на той машине, где не идёт.  
Нужен Microsoft Windows Common Control, файл MSCOMCTL.OCX

 

mini_adm

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

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

а для не самых утонченных пользователей можно поконкретней написать как это сделать?

 

Hugo

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

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

Все ждут, пока я поработаю, поем, и снова поработаю? :)  
Я предполагаю, что может быть на Вашией машине есть этот компонент, но другой версии, поэтому что-то нестыкуется (у меня раз было похожее).  
Открываете редактор ВБА (Alt+F11), кликаете по форме (в своём файле в дереве проектов), смотрите, чтоб был отображён Toolbox (View-Toolbox).  
На нём должен быть ListView — если нет, то кликаете ПКМ и выбираете в списке.  
У меня кстати на машине их два, 5 и 6 версии, и живут кстати в разных файлах.

 

mini_adm

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

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

Сделал все прям по пунктам, ListView добавил, но толку нет, все так же сругивается и выдает ту же ошибку.  
Может с этим ЛистВьюером надо еще чета сделать?

 

Hugo

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

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

Я думаю, что элемент на форме был, но завязан на библиотеку другой версии — поэтому не работало.  
А таким хитрым ходом можно к проекту подключить существующую на машине библиотеку — а там уж как пойдёт…  
Не пошло :(  
Тогда пробуйте заменить полностью тот объект на доступный, как сказал Дмитрий.  
Хотя в 6-ой версии смотрю появились некоторые новые свойства — если они задействованы в коде, то опять будет ругаться. Возможно — не уверен, не проверял.

 

mini_adm

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

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

А где можно глянуть эти библиотеки и обновитьоткатить до необходимых?  

  {quote}{login=The_Prist}{date=09.07.2012 05:12}{thema=}{post}Теперь в свойствах этого самого ListView надо задать имя объекта(Name),…{/post}{/quote}Объект с которым проблема действительно SubsList, это список поставщиков,  которыми мы не можем оперировать, возникает ошибка. Не понял только почему их надо менять на ListView1 ?  
Все же попробовал поменять в коде, но не помогло. или руки не под то заточены…  
Так же пробовал поменять SubsList на ThisList (если не ошибаюсь) это на этом же форуме вычитал, то же не помогло.

 

Hugo

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

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

В редакторе VBA заходите в Tools->References- там всё. Только понять, кто за что отвечает — в основном по наитию :)  
Можно отключить ненужные и подключить нужные (если есть в наличии).

 

mini_adm

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

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

Эт я понял, я имею ввиду как узнать где необходимая библиотека, так как общий список активных библиотек сверял с компом на котором эти макросы работают. Все одинаково.  
А управлять этими библиотеками как то можно? а то я там увидел только список из нескольких сотен доступных (но неактивных) библиотек со всего компа, а хотелось бы с ними что то сделать, типа обновления…

 

mini_adm

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

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

Хмм…сам не понял что поменял, но теперь макрос сругивается на «Application.Goto Reference:=ArrNames(i)»    
Еще не очень понятна ситуация с переменной «j» очень интересно, почему при последовательном присвоении значений от 1 до 4 во время операций с этой переменной, значение «i» умножается на столь безсвязные цифры (17,41,36,39)…  
И почему в начале задается значение «j» от 1 до 14, а оперируются только значения от 1 до 4-х …  

  PS пардон что столько нубо-вопросов, просто общее представление о коде у меня имеется и очень интересно что и как…  

  PPS да, правила создания тем на форуме я читал и пункт «одна тема-один вопрос» помню, но правда очень интересно…

 

Hugo

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

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

#13

10.07.2012 19:34:36

Ругается — значит нет такого диапазона. Например «RMASubs7»  
«оперируются только значения от 1 до 4-х» — ошибаетесь.  
Остальные тоже обрабатываются, позже.

Если вы используете Excel, вы можете столкнуться с ошибкой «Ошибка выполнения 424» с сообщением «Требуется объект».

Это ошибка в VBA (Visual Basic для приложений) и в основном проявляется, когда вы указываете на объект, который либо не существует, либо не находится за пределами текущей области.

Если вы видите ошибку, когда кто-то «обрабатывает» какой-то макрос/автоматизированную функцию в электронных таблицах Excel, вероятная проблема заключается в том, что вы называете объект «вне контекста». Это означает, что вы можете загрузить объект, но его содержимое может быть изменено или изменено. Есть также некоторые другие потенциальные проблемы, которые я объясню в этом руководстве…

причина

Ошибка, которую вы видите, будет иметь следующее сообщение:

Ошибка времени запуска «424»

Требуется объект

Чтобы объяснить, почему он показывает ошибку и что это значит, Microsoft выпустила свой пакет «Visual Basic» в конце 90-х.

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

Из-за этого Microsoft представила «VBA» (Visual Basic для приложений) в своем пакете программного обеспечения Office, а именно в Excel и Word. Это позволило типам разработчиков создавать автоматические функции в электронных таблицах Excel, указывать на «объекты» в самой электронной таблице и так далее.

Каждый раз, когда мы используем Visual Basic, мы вызываем ряд «объектов» в памяти. Эти объекты являются просто переменными, используемыми в ряде дополнительных функций, включая пользовательские функции и так далее. Проблема — и это относится к большинству языков программирования — в том, что если указать на объект, который не вызывается, приложение рухнет.

решение

Если вы хотите исправить проблему, вы должны сначала убедиться, что данные есть в системе, и тогда вы сможете правильно обращаться к ним. Этот урок объяснит, как:

1. Убедитесь, что переменные определены правильно

Основная проблема заключается в том, что вы вызываете метод для несуществующей переменной (объекта). Наиболее распространенная причина этого заключается в том, что вы просто неправильно вводите имя переменной и поэтому не объявляете ее в своем приложении VBA. Возьмем следующий пример:

Подтест ()

Application33.WorksheetFunction.Sum (диапазон (“A1: A100”))

Последняя подписка

Вышеприведенное вызовет ошибку, потому что вы пытаетесь вызвать метод WorksheetFunction для «Application33», указанного в объекте.

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

2. Если вы используете Excel, убедитесь, что есть диапазоны/селекторы

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

Частный дополнительный тест ()

Это вызовет ошибку

Application.WorksheetFunction.VLookup(TeamName, Range (“TeamNameLookup”), 3, False).

Стоимость должна быть

Application.WorksheetFunction.VLookup(TeamName, Sheets (“YourSheetName”). Диапазон (“TeamNameLookup”), 3, False)

Последняя подписка

Вышеупомянутое означает, что вы пытаетесь вызвать разные рабочие листы, и их соответствующий «диапазон»/«значение» работает без поиска или объявления рабочих листов. Чтобы исправить это, вам нужно убедиться, что вы вызываете «диапазон» или «значение» для соответствующих объектов.

3. Убедитесь, что у вас есть правильные определения

Наконец, одна из наиболее распространенных причин ошибок заключается в том, что вы неправильно определяете свои переменные.

От неправильного определения переменных как неверных интерпретаций объектов до вызова «Option Explicit» вы можете пытаться указать переменные/объекты, которые не определены только потому, что они определены неправильно.

Например…

Вариант очевиден

Персональный дополнительный тест ()

Здесь вам нужно объявить переменные, прежде чем пытаться указать/заполнить их

Например…

Затемните your_path как строку

Установите your_path = “x/y/z”

Последняя подписка

В приведенном выше примере, если переменная «ваш_путь» не объявлена ​​до ее установки, вы получите ошибку 424 (поскольку объект «ваш_путь» не существует). Отсюда вы также должны убедиться, что вы можете вызывать соответствующие объекты (если вы указываете значение рабочего листа, вы должны убедиться, что рабочий лист существует и может быть загружен).

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

The first code line, Option Explicit means (in simple terms) that all of your variables have to be explicitly declared by Dim statements. They can be any type, including object, integer, string, or even a variant.

This line: Dim envFrmwrkPath As Range is declaring the variable envFrmwrkPath of type Range. This means that you can only set it to a range.

This line: Set envFrmwrkPath = ActiveSheet.Range("D6").Value is attempting to set the Range type variable to a specific Value that is in cell D6. This could be a integer or a string for example (depends on what you have in that cell) but it’s not a range.

I’m assuming you want the value stored in a variable. Try something like this:

Dim MyVariableName As Integer
MyVariableName = ActiveSheet.Range("D6").Value

This assumes you have a number (like 5) in cell D6. Now your variable will have the value.

For simplicity sake of learning, you can remove or comment out the Option Explicit line and VBA will try to determine the type of variables at run time.


Try this to get through this part of your code

Dim envFrmwrkPath As String
Dim ApplicationName As String
Dim TestIterationName As String

Содержание

  1. Object required (Error 424)
  2. Support and feedback
  3. Требуется объект (ошибка 424)
  4. Поддержка и обратная связь
  5. Runtime Error 424 “Object Required” Error Fix Tutorial for Windows 7/8/10
  6. The error is caused by Excel not having access to a data “object” referenced in the code. This may be a variable, class or library reference…
  7. ➡️ Explanation
  8. 💾 Overview
  9. 🖥️ ️Cause
  10. 🔌 Solution
  11. 1️⃣ Code Combing
  12. 2️⃣ Debug
  13. ☎️ Further Support ☎️
  14. 📥 Thanks For Reading! 📥
  15. Excel VBA Run Time Error ‘424’ object required
  16. 4 Answers 4
  17. Ошибка 424: Значение кода и решение проблемы
  18. Ошибка 424: Три основные причины и решение
  19. Множественные запросы
  20. Решение проблемы
  21. Правила безопасности CMS сайта
  22. Решение проблемы
  23. Требуемый объект возвращает ошибку
  24. Решение ошибки
  25. Ошибка 424 и Visual Basic
  26. Решение проблемы
  27. Есть дополнительные вопросы?

Object required (Error 424)

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:

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).

Support and feedback

Have questions or feedback about Office VBA or this documentation? Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.

Источник

Требуется объект (ошибка 424)

Для ссылок на свойства и методы зачастую требуется явный описатель объекта. Эта ошибка имеет следующие причины и способы решения:

При ссылке на свойство или метод объекта не указан допустимый описатель объекта. Укажите описатель объекта, если он не задан. Например, можно опустить описатель объекта при ссылке на свойство формы в собственном модуле формы, однако, необходимо явно задать описатель при ссылке на свойство из стандартного модуля.

Описатель объекта указан, но не распознается как объект. Проверьте правильность написания описателя объекта и убедитесь в том, что объект видим в той части программы, где на него присутствует ссылка. В случае с объектами коллекции проверьте все вхождения метода Add, чтобы убедиться в том, что для всех элементов используется правильный синтаксис и правописание.

Указан допустимый описатель объекта, но другие части вызова содержат ошибку. Неправильный путь в качестве аргумента к команде «Открыть файл»ведущего приложения может вызвать ошибку. Проверьте аргументы.

При назначении ссылки на объект не использовался оператор Set. Если при назначении возвращаемого значения вызова CreateObject в переменную Variant пропущен оператор Set, ошибка может не возникать. В следующем примере кода создается неявный экземпляр Microsoft Excel, а его свойство по умолчанию (строка «Microsoft Excel») возвращается и присваивается Variant RetVal . Последующая попытка использовать RetVal в качестве ссылки на объект вызывает следующую ошибку:

Используйте оператор Set при назначении ссылки на объект.

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

Для получения дополнительной информации выберите необходимый элемент и нажмите клавишу F1 (для Windows) или HELP (для Macintosh).

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

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Источник

Runtime Error 424 “Object Required” Error Fix Tutorial for Windows 7/8/10

The error is caused by Excel not having access to a data “object” referenced in the code. This may be a variable, class or library reference…

The “ Runtime Error 424 (Object Required)” error is caused by Excel being unable to access to an “object” referenced in your VBA code:

The error is caused by a function being called on a reference you’ve either misspelled, or have not declared.

The solution is to ensure you have all the appropriate references declared within your code. The simplest ways to fix the problem is as follows:

  • Locate the offending line of code (if not highlighted, use debug mode)
  • Identify whether you’ve referenced any objects which aren’t declared
  • Look for any of the functions which may be causing an error and identify they are called correctly (with the correct syntax)
  • Remove as much code as possible in order to get the application working again, and then add back the lines one-by-one (this isolates the error and allows yo to fix any of the issues it may have)

➡️ Explanation

You need to understand that all computer programs are long lines of code.

These lines contain instructions which the computer will process,
performing functions that will interact with a variety of different objects within the system.

Whenever you use the likes of VBA, you need to appreciate that in order for the computer to process the various functions you’re calling in your script, anything referenced by the script has to be loaded prior to it being read.

The problem you have is that you’re trying to call an object, which has either not been referenced properly, or is not loaded into the system. The result is your application will fail, and you’ll be presented with a multitude of potential errors.

💾 Overview

“VBA” (Visual Basic for Applications) is used to create event-based functionality (using the “Visual Basic” language) inside the likes of Excel, Word, Powerpoint and other software.

Introduced in 1993, VBA forms a core part of Microsoft’s “Office” suite → enabling people to add programmatic functionality to their documents, spreadsheets and presentations…

Whilst effective, because it is (at its core) a programming environment, it’s easy to succumb to problems if you’re not experienced.

This lies at the core of what causes the Runtime 424 (Object Required) error → people referencing “objects” which don’t exist or are not loaded by Excel.

🖥️ ️Cause

“Runtime” errors are a common problem for many desktop applications; purveyors of Windows (pre-10) will be very familiar with them…

Runtime errors have been a problem for a long time

Whilst these errors show for many reasons, they have the same cause → something in a software’s source code prevented it from running …

To appreciate why this is a problem, you must understand that all computer programs are essentially a “list” of commands which are held in memory by the computer…

These commands are stored in 3 “layers”:

  1. GUI layer(shows the user a series of inputs)
  2. Application layer (stores the “business logic” for the application)
  3. Database layer (storing all of the functions, methods, variables and data required to keep the application running).

The way an application works is to load all of these commands into memory, and provides users with the ability to interact with them via a GUI.

Whereas there are many reasons why this process may fail, one of the most common (and why “Runtime” errors exist) is that the functions inside these commands may reference a script or object that doesn’t exist…

This causes the application to “fail”, and Windows (or whichever OS you’re running) will have to show an error, describing what went wrong.

In terms of your VBA environment, the problem is due to a reference you made to a Worksheet, object, variable or file, which Excel has not loaded.

This is relatively simple to resolve, but requires understanding.

🔌 Solution

The core solution to “ Runtime Error 424” is to locate any references you have in your VBA code which are not present within Excel…

The simplest way to do this is to comb through each line of code and
remove any issues which may be in there.

There is an easy way to do this, and it works very well to fix the majority of Runtime 424 errors in VBA:

  1. The first — and most effective — solution is to manually comb through the code. This involves removing blocks of code in order to try and get it running, adding the system. This helps you identify the offending line, allowing for more specific inspection.
  2. The second — and more methodical — method is to use the “Code Stepping” feature of VBA. This can be done using F8 within the VBA development environment…

1️⃣ Code Combing

The first step is to comb through your application’s code.

Doing this is simple. You need to remove any of the code which may be causing a problem, and gradually add it back again.

2️⃣ Debug

The second method is to let VBA “walk” through your code, removing any element which may be causing issues.

To do this, we can utilize the “code stepping” feature, which allows us to visualize how each line of code is running:

In order to do this, you need to ensure you’re in the VBA editor.

This is done by clicking on the “Visual Basic” button inside Excel:

To get to this, you need to click on File → Options → Customize Ribbon, and ensure that “Developer” is checked.

This will create the “Developer” tab at the top of the screen, and allow you to click onto the likes of “ Visual Basic” and other buttons as a result.

Once you click on this button, you’ll be presented with a

☎️ Further Support ☎️

If you need further support, please feel free to contact → we’re a UK software company who specialize in support & scalability.


We have a 👾 PCFixes.com 👾 support page if you require further help.

You’re also welcome to talk to us through the page below ↴

🎧 Live support 🎧 is STRONGLY recommend IF you use your system for business or work.

If you need the help right now, getting an expert on screen gives you the ability to at least get a second opinion (and perhaps someone to help guide you through the fix). Live support is the only way to do this.

⚠️ Do NOT use live services that charge up front. ONLY use companies who provide live support without ANY up-front commitments…⚠️

✔️ PCFixes.com is the only recognized online system repair service
✔️ PCFixes.com is operated from the UK by veteran PC repair technicians
✔️ PCFixes.com gives 24/7 support to anyone needing system repairs

📥 Thanks For Reading! 📥

If you need further help, please feel free to ask below…

Источник

Excel VBA Run Time Error ‘424’ object required

I am totally new in VBA and coding in general, am trying to get data from cells from the same workbook (get framework path . ) and then to start application (QTP) and run tests.

I am getting this error when trying to get values entered in excel cells:

I believe I am missing some basic rules but I appreciate your help. Please see below the part of code in question:

4 Answers 4

The first code line, Option Explicit means (in simple terms) that all of your variables have to be explicitly declared by Dim statements. They can be any type, including object, integer, string, or even a variant.

This line: Dim envFrmwrkPath As Range is declaring the variable envFrmwrkPath of type Range . This means that you can only set it to a range.

This line: Set envFrmwrkPath = ActiveSheet.Range(«D6»).Value is attempting to set the Range type variable to a specific Value that is in cell D6 . This could be a integer or a string for example (depends on what you have in that cell) but it’s not a range.

I’m assuming you want the value stored in a variable. Try something like this:

This assumes you have a number (like 5) in cell D6. Now your variable will have the value.

For simplicity sake of learning, you can remove or comment out the Option Explicit line and VBA will try to determine the type of variables at run time.

Try this to get through this part of your code

Источник

Ошибка 424: Значение кода и решение проблемы

Ошибка 424 буквально означает следующее: «требуется объект» или «заблокировано правилами безопасности сайта». Возникает при атаке на сайт популярных CMS, ввиду множественных параллельных запросов или обращение к объекту с ошибкой.

Ошибка 424: Три основные причины и решение

Множественные запросы

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

Решение проблемы

Завершите параллельные запроса или остановите выполнение команд. В случае, если вы не находите, что именно нужно остановить — проверьте логи. Каждый случай индивидуален, т.к. чаще всего ошибка 424 возникает по другим причинам. Если у вас конкретно эта причина — напишите в комментариях проблему и приложите скриншот. Наш администратор разберёт вопрос в течении 24-х часов.

Правила безопасности CMS сайта

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

Решение проблемы

Нет повода для беспокойств, т.к. в этом случае просто сработал защитный механизм от сканирования уязвимостей сайта. Часто с этим сталкиваются пользователи популярных CMS. Для предотвращения взлома рекомендуем проверить логи сайта, найти ip от которого идут запросы и отправить его в блок лист.

Если ошибка 424 возникает на веб-странице, то можно выключить данную опцию. Необходимо перейти в Панель управления — Хостинг — Мои сайты — Логи и нажать на «Error» для просмотра списка (путь может отличаться в зависимости от хостинга). В новом окне нужно начать поиск записи, отображающей запрос. В появившейся строчке выбрать «Выключить правило», и в течение получаса опция отключится.

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

Требуемый объект возвращает ошибку

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

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

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

Решение ошибки

Решение проблемы состоит в том, чтобы проверить, что в вашем коде указаны все соответствующие ссылки.

«VBA» (Visual Basic для приложений) используется для создания функциональных возможностей на основе событий (с использованием языка «Visual Basic») в Excel, Word, Powerpoint и других программах. Представленный в 1993 году, VBA является основной частью пакета Microsoft Office.

Ошибки «времени выполнения» — распространенная проблема для многих настольных приложений. Ошибки времени выполнения были проблемой в течение долгого времени.

Они хранятся в трех «слоях»:

  1. Слой графического интерфейса пользователя (показывает пользователю серию входных данных)
  2. Уровень приложения (хранит «бизнес-логику» приложения)
  3. Уровень базы данных (хранящий все функции, методы, переменные и данные, необходимые для работы приложения).

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

Ваши действия:

  1. При обращении к свойству или методу объекта укажите нужный описатель объекта. Следует его указать, если он не задан.
  2. Допущена ошибка в написании объекта, поэтому не происходит его распознавания. Следует убедиться в правописании той части программы, где присутствует ссылка на объект.
  3. Правильность написания соблюдена, но стоит пересмотреть другие элементы ссылки, которые содержат ошибки. Необходимо проверить аргументы.
  4. Если пользователь собирается совершить недопустимую операцию к допустимому объекту. Пример: сбой происходит при попытке присвоить значение свойству «только чтение». Решение: проверить документацию по файлу и убедиться в том, что действие допустимо.

Ошибка 424 и Visual Basic

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

Ошибки «времени выполнения» существуют во всех типах программного обеспечения. Это приводит к сбою приложения, и Windows (или любая другая операционная система, которую вы используете) должна будет показать ошибку.

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

Решение проблемы

  • Основное решение «ошибки выполнения 424» — найти все ссылки в коде VBA. Лучший способ устранить ошибку 424 — использовать режим «отладки» VBA.
  • Самый простой способ сделать это — просмотреть каждую строку кода и удалить все возникшие проблемы. Есть простой способ сделать это, и он очень хорошо помогает исправить большинство ошибок 424 в VBA. Первое и самое эффективное решение — вручную «прочесать» код. Так можно удалить блоки кода по порядку. Второй метод — позволить VBA «пройтись» по вашему коду, удалив все элементы, которые могут вызывать проблемы.

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

Заходим в редактор VBA. Чтобы добраться до него сделайте следующее: Файл — Параметры — Настроить ленту. Затем проверьте, что установлен флажок «Разработчик». Это создаст вкладку «Разработчик» в верхней части экрана. Автоматически запустится поиск возникшей проблемы.

Простой алгоритм решения проблемы вручную:

  1. Найдите строку кода с нарушением
  2. Определите, ссылались ли вы на объекты, которые не объявлены
  3. Найдите любую из функций, которая может вызывать ошибку, и определите, что они вызываются правильно (с правильным синтаксисом).
  4. Удалите как можно больше кода, чтобы приложение снова заработало, а затем добавьте строки одну за другой (это изолирует ошибку и позволяет исправить любую из проблем, которые могут возникнуть).

Есть дополнительные вопросы?

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

Источник

Lendor

0 / 0 / 0

Регистрация: 13.02.2013

Сообщений: 34

1

25.02.2013, 11:58. Показов 66174. Ответов 9

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

в следующем коде в строке 4 (открытие файла с расширением doc) выскакивает ошибка «run-time error ‘424’ object required»

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
 Dim wdApp As Object
 Dim wdDoc As Object
 Set wdApp = CreateObject("Word.Application")
 Set wdDoc = wdApp.Documents.Open(Replace(ThisWorkbook.FullName, ThisWorkbook.Name, act_1058652.doc))
 wdApp.Selection.WholeStory
 wdApp.Selection.Copy
 Worksheets("Обработка").PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:= _
        False, NoHTMLFormatting:=True
 wdDoc.Close
 wdApp.Quit
Set wdDoc = Nothing
Set wdApp = Nothing

уже все перепробовал для того, чтобы она исчезла, и ставил дополнително к 2010 офису 2003, тк код пишется на 2003, а стоял у меня 2010, и биьлиотеки подключал в Tools-References, и в уровне безопасности макросов разрешил обращение к файлам из VBA, а ошибка так и вылазит (((
какие еще могут быть причины этой ошибки



0



693 / 99 / 10

Регистрация: 25.06.2011

Сообщений: 718

25.02.2013, 12:02

2

Эта проблема может возникнуть при следующих случаях:
Библиотека объектов доступа к данным не используется должным образом. — или —
Объект доступа к данным файлов отсутствуют, повреждены или неправильно зарегистрированы.

Добавлено через 42 секунды

Цитата
Сообщение от Lendor
Посмотреть сообщение

Replace(ThisWorkbook.FullName, ThisWorkbook.Name, act_1058652.doc)

попробуй просто прописать путь к файлу



0



Казанский

15136 / 6410 / 1730

Регистрация: 24.09.2011

Сообщений: 9,999

25.02.2013, 12:10

3

Лучший ответ Сообщение было отмечено как решение

Решение

Имя файла — в кавычках!

Visual Basic
1
Set wdDoc = wdApp.Documents.Open(Replace(ThisWorkbook.FullName, ThisWorkbook.Name, "act_1058652.doc"))



4



0 / 0 / 0

Регистрация: 13.02.2013

Сообщений: 34

25.02.2013, 12:23

 [ТС]

4

действительно кавычки)) спасибо



0



Казанский

15136 / 6410 / 1730

Регистрация: 24.09.2011

Сообщений: 9,999

25.02.2013, 15:31

5

А лучше так:

Visual Basic
1
Set wdDoc = wdApp.Documents.Open(ThisWorkbook.Path & "act_1058652.doc")

, потому что часть пути может совпадать с именем книги, например c:MyBook.xlsMyBook.xls, и при замене сформируется несуществующий путь.



0



mostApi

7 / 5 / 0

Регистрация: 15.05.2015

Сообщений: 342

02.11.2015, 15:18

6

Та же ошибка!
Обзываю

Visual Basic
1
Public Cmb1, Cmb2 As ComboBox

— есть альтернатива ComboBox?
Почему альтернатива?, или то что можно применить в случае?
Из диапазона ячеек поиском формируется список для ComboBox, потом из него по .ListIndex мне удобно задавать нужные координаты используемых ячеек?!
Ошибка здесь:

Visual Basic
1
2
3
4
5
6
7
8
With Cmb1
    '.Clear
    '.Style = fmStyleDropDownList
        For iRow = 14 To Cells(Rows.Count, 2).End(xlUp).Row Step 4
            .AddItem Cells(iRow, 2)
        Next
    .ListIndex = -1
End With

Добавлено через 46 минут

Visual Basic
1
Dictionary

— может словарь? Как с ним в моем случае быть?



0



Казанский

15136 / 6410 / 1730

Регистрация: 24.09.2011

Сообщений: 9,999

02.11.2015, 15:45

7

mostApi, а где Вы связываете Cmb1 с каким-либо существующим комбобоксом? Например

Visual Basic
1
Set Cmb1 = UserForm1.ComboBox1



1



7 / 5 / 0

Регистрация: 15.05.2015

Сообщений: 342

02.11.2015, 16:22

8

Казанский, Ооо, не подумал, спасибо…

Вопрос: собрал словарь, структура такова: Key = «Vasia»; Item = «Вася»… и т.д.
Как найти «Вася» и подставить с него «Vasia»…?



0



Казанский

15136 / 6410 / 1730

Регистрация: 24.09.2011

Сообщений: 9,999

02.11.2015, 23:05

9

Цитата
Сообщение от mostApi
Посмотреть сообщение

Как найти «Вася» и подставить с него «Vasia»…?

В смысле, сделать значение равным ключу? Найти — перебором

Visual Basic
1
2
3
4
5
6
  For Each x In di.Keys 'di - словарь
    If di(x) = "Вася" Then
      di(x) = x
      Exit For
    End If
  Next

А почему приходится искать значение? Может, поменять местами значение и ключ?



0



7 / 5 / 0

Регистрация: 15.05.2015

Сообщений: 342

03.11.2015, 11:23

10

Казанский, спасибо…

Просто у меня в таблице Excel имена пользователей на Русском языке, а в базе, таблица имени пользователя на English, поэтому нужна была простая подстановка…



0



Like this post? Please share to your friends:
  • Error 2023 vba excel
  • Erin daniels the l word
  • Ercola feat daniella every word
  • Er est word endings
  • Equivalent word for love