Перевод object variable or with block variable not set

Не задана объектная переменная (ошибка 91) Object variable not set (Error 91)

Создание переменной объекта состоит из двух шагов. There are two steps to creating an object variable. Во-первых необходимо объявить переменную объекта. First you must declare the object variable. Затем необходимо назначить правильную ссылку на переменную объекта, используя инструкцию Set. Then you must assign a valid reference to the object variable using the Set statement.

Аналогично, необходимо инициализировать блок With. End With, выполняя точку входа инструкции With. Similarly, a With. End With block must be initialized by executing the With statement entry point. Эта ошибка имеет следующие причины и решения: This error has the following causes and solutions:

Предпринята попытка использовать переменную объекта, которая еще не ссылается на допустимый объект. You attempted to use an object variable that isn’t yet referencing a valid object.

Задайте или повторно задайте ссылку для переменной объекта. Specify or respecify a reference for the object variable. Например, если в следующем коде пропущена инструкция Set, для ссылки на MyObject будет сформирована ошибка: For example, if the Set statement is omitted in the following code, an error would be generated on the reference to MyObject:

Предпринята попытка использовать переменную объекта, для которой было задано значение Nothing. You attempted to use an object variable that has been set to Nothing.

Повторно задайте ссылку для переменной объекта. Respecify a reference for the object variable. Например, используйте новую инструкцию Set, чтобы задать новую ссылку на объект. For example, use a new Set statement to set a new reference to the object.

Объект является допустимым объектом, но он не был задан, так как библиотека объектов, в которой он описан, не была выбрана в диалоговом окне Добавление ссылок. The object is a valid object, but it wasn’t set because the object library in which it is described hasn’t been selected in the Add References dialog box.

Выберите библиотеку объектов в диалоговом окне Добавление ссылок. Select the object library in the Add References dialog box.

Цель инструкции GoTo находится внутри блока With. The target of a GoTo statement is inside a With block.

Не следует выполнять переход в блок With. Don’t jump into a With block. Убедитесь, что блок инициализирован с помощью точки входа инструкции With. Make sure the block is initialized by executing the With statement entry point.

При выборе команды Задать следующий оператор указана строка внутри блока With. You specified a line inside a With block when you chose the Set Next Statement command.

Блок With должен быть инициализирован с помощью выполнения инструкции With. The With block must be initialized by executing the With statement.

Для получения дополнительной информации выберите необходимый элемент и нажмите клавишу F1 (для Windows) или HELP (для Macintosh). For additional information, select the item in question and press F1 (in Windows) or HELP (on the Macintosh).

Хотите создавать решения, которые расширяют возможности Office на разнообразных платформах? Interested in developing solutions that extend the Office experience across multiple platforms? Ознакомьтесь с новой моделью надстроек Office. Check out the new Office Add-ins model. У надстроек Office мало места по сравнению с надстройками и решениями VSTO, которые можно создавать с помощью практически любой технологии веб-программирования, например HTML5, JavaScript, CSS3 и XML. Office Add-ins have a small footprint compared to VSTO Add-ins and solutions, and you can build them by using almost any web programming technology, such as HTML5, JavaScript, CSS3, and XML.

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

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Have questions or feedback about Office VBA or this documentation? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь. Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.

Источник

Не задана переменная объекта или переменная блока With Object variable or With block variable not set

Указана недопустимая объектная переменная. An invalid object variable is being referenced. Эта ошибка может возникать по нескольким причинам: This error can occur for several reasons:

Переменная объявлена без указания типа. A variable was declared without specifying a type. Если переменная объявлена без указания типа, по умолчанию используется тип Object . If a variable is declared without specifying a type, it defaults to type Object .

Например, переменная, объявленная с Dim x типом, будет иметь тип Object; переменной, объявленной с Dim x As String типом String . For example, a variable declared with Dim x would be of type Object; a variable declared with Dim x As String would be of type String .

Option Strict Оператор запрещает неявную типизацию, которая приводит к Object типу. The Option Strict statement disallows implicit typing that results in an Object type. Если опустить тип, возникнет ошибка времени компиляции. If you omit the type, a compile-time error will occur. См. раздел Оператор Option Strict. See Option Strict Statement.

Предпринимается попытка сослаться на объект, для которого задано значение Nothing . You are attempting to reference an object that has been set to Nothing .

Предпринята попытка получить доступ к элементу переменной массива, которая была неправильно объявлена. You are attempting to access an element of an array variable that wasn’t properly declared.

Например, массив, объявленный как, products() As String вызовет ошибку при попытке сослаться на элемент массива products(3) = «Widget» . For example, an array declared as products() As String will trigger the error if you try to reference an element of the array products(3) = «Widget» . Массив не содержит элементов и обрабатывается как объект. The array has no elements and is treated as an object.

Попытка получить доступ к коду в With. End With блоке до инициализации блока. You are attempting to access code within a With. End With block before the block has been initialized. With. End With Блок необходимо инициализировать, выполнив With точку входа оператора. A With. End With block must be initialized by executing the With statement entry point.

В более ранних версиях Visual Basic или VBA эта ошибка была также вызвана путем присвоения значения переменной без использования Set ключевого слова ( x = «name» вместо Set x = «name» ). In earlier versions of Visual Basic or VBA, this error was also triggered by assigning a value to a variable without using the Set keyword ( x = «name» instead of Set x = «name» ). Set Ключевое слово больше не является допустимым в Visual Basic .NET. The Set keyword is no longer valid in Visual Basic .Net.

Исправление ошибки To correct this error

Задайте Option Strict для значение On , добавив следующий код в начало файла: Set Option Strict to On by adding the following code to the beginning of the file:

При запуске проекта в Список ошибок для любой переменной, указанной без типа, отобразится ошибка компилятора. When you run the project, a compiler error will appear in the Error List for any variable that was specified without a type.

Если вы не хотите включать Option Strict , найдите в коде любые переменные, которые были указаны без типа ( Dim x вместо Dim x As String ), и добавьте предполагаемый тип к объявлению. If you don’t want to enable Option Strict , search your code for any variables that were specified without a type ( Dim x instead of Dim x As String ) and add the intended type to the declaration.

Убедитесь, что вы не ссылаетесь на переменную объекта, для которой было задано значение Nothing . Make sure you aren’t referring to an object variable that has been set to Nothing . Найдите ключевое слово в коде Nothing и измените код таким образом, чтобы объект не был установлен в значение Nothing до тех пор, пока вы не задали ссылку на него. Search your code for the keyword Nothing , and revise your code so that the object isn’t set to Nothing until after you have referenced it.

Прежде чем обращаться к ним, убедитесь, что все переменные массива имеют размеры. Make sure that any array variables are dimensioned before you access them. Можно либо назначить измерение при первом создании массива ( Dim x(5) As String вместо Dim x() As String ), либо использовать ReDim ключевое слово, чтобы задать размеры массива до первого доступа к нему. You can either assign a dimension when you first create the array ( Dim x(5) As String instead of Dim x() As String ), or use the ReDim keyword to set the dimensions of the array before you first access it.

Убедитесь, что With блок инициализирован путем выполнения With точки входа оператора. Make sure your With block is initialized by executing the With statement entry point.

Источник

Run time error 91: Object variable or With block variable not set (не могу найти ошибку)

Пожалуйста посмотрите файл. Подскажите в чем ошибка.
В комбобоксе выбираю какой либо номер, делаю изменения в текстбоксах (или без изменений) пытаюсь сохранить и вылетает эта ошибка (Run time error 91: Object variable or with block variable non set). По сайтам искал подобные решения, подходящего не нашел. Ну может и руки кривые.

Вложения

AD-CN EVALUATION COMPLIANCE REPORT FORM.rar (88.7 Кб, 13 просмотров)

Ошибка Run Time Error 91 (Object variable or block variable not set)
Добрый день! Есть код для VBA Outlook для открытия файла Excel, копирования из него диапазона, и.

Run time error 91: Object variable or With block variable not set
Здравствуйте, помогите пожалуйста исправить ошибку в макросе. Вот код: Sub findtekst() Dim c As.

Run-time error 91. Object variable or with block variable not set
Добрый день! Я оказался на новом месте, в макросах не разбираюсь совсем. Возникает такая ошибка.

ошибка «Run-time error ’91’: Object variable or With block variable not set»
приветствую! имеется документ на нескольких листах, заполняется по дням соответственно на многих.

Вот, я вам бесплатно перевел с иностранного..

*Переменная объекта или переменная блока with не заданна*

Решение

Вложения

AD-CN EVALUATION COMPLIANCE REPORT FORM.rar (87.1 Кб, 11 просмотров)

А за перевод.

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

mc-black, проверил работоспособность. Ошибка не вылетает, однако внесенные изменения тоже не сохраняет.

Добавлено через 7 минут
И интересно почему ищет на активном — MAIN, а не на нужном скрытом листе AD_EVALUATION_STATUS?
Я вроде установил свойство для листа Sheets(«AD_EVALUATION_STATUS»).Visible = True и активировал его Sheets(«AD_EVALUATION_STATUS»).Activate

Добавлено через 38 секунд
Антихакер32, как Вы думаете?

Работать с активным листом считается не самым быстрым и надёжным способом. Не вникал особо в код, возможно там в промежутках где-то меняется активный лист. Лучше все объекты диапазонов (Range, Cell(s), Row(s), Column(s)) относить напрямую на объект листа — объектной переменной листа или неименованным объектом в блоке With, то есть после точки.

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

Странно что вы пользуетесь активным листом..
обычно при записи макроса пошеться ActiveShet подразумевается что рабочий лист в период выполнения не изменится, а вообще правильнее объявлять Sheets(«Лист1»)
ну.. кому как нравится, у кого больше свободного времени для исправления проблем ))

Добавлено через 3 минуты
я это знаю потому.. что вообще стараюсь не пользоваться авто-записью макроса..
а если и пользуюсь, то только подсмотреть .. что там буржуйская автоматика пишет, ..куда ссылается )))

Источник

Оцените статью
( Пока оценок нет )
Поделиться с друзьями
Uchenik.top - научные работы и подготовка
0 0 голоса
Article Rating
Подписаться
Уведомить о
guest
0 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии