Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Ссылка на недопустимую переменную объекта. Эта ошибка может возникать по нескольким причинам:
Переменная была объявлена без указания типа. Если переменная объявлена без указания типа, по умолчанию используется тип
Object.Например, переменная, объявленная с
Dim xтипомObject;переменной, объявленной сDim x As Stringтипом, будет иметь типString.Подсказка
Оператор
Option Strictзапрещает неявное ввод, которое приводит к типуObject. Если тип не указан, возникнет ошибка во время компиляции. См. инструкцию Option Strict.Вы пытаетесь ссылаться на объект, которому присвоено значение
Nothing.Вы пытаетесь получить доступ к элементу переменной массива, которая не была правильно объявлена.
Например, массив, объявленный как
products() As Stringактивирует ошибку при попытке ссылаться на элемент массиваproducts(3) = "Widget". Массив не имеет элементов и обрабатывается как объект.Вы пытаетесь получить доступ к коду в блоке
With...End Withдо инициализации блока.With...End WithБлок должен быть инициализирован путем выполнения точки входа инструкцииWith.
Замечание
В более ранних версиях Visual Basic или VBA эта ошибка также была активирована путем назначения значения переменной без использования Set ключевого слова (x = "name" вместо Set x = "name"). Ключевое Set слово больше не является допустимым в Visual Basic .Net.
Исправление этой ошибки
Задайте значение
Option StrictOn, добавив следующий код в начало файла:Option Strict OnПри запуске проекта в списке ошибок компилятора появится любая переменная, указанная без типа.
Если вы не хотите включить
Option Strict, выполните поиск кода для любых переменных, которые были указаны без типа (Dim xвместоDim x As String) и добавьте нужный тип в объявление.Убедитесь, что вы не ссылаетесь на переменную объекта, которая была задана
Nothing. Выполните поиск кода для ключевого словаNothingи проверьте код, чтобы объект не был заданNothingдо тех пор, пока вы не на него ссылаетесь.Прежде чем получить доступ к ним, убедитесь, что все переменные массива измерены. Вы можете назначить измерение при первом создании массива (
Dim x(5) As StringвместоDim x() As Stringэтого) или использоватьReDimключевое слово для задания измерений массива перед первым доступом к нему.Убедитесь, что
Withблок инициализирован, выполнив точку входа инструкцииWith.