Обнаружено неоднозначное имя
Идентификатор конфликтует с другим идентификатором или требует квалификации. Эта ошибка имеет следующие причины и способы решения:
Элементы с одинаковыми именами могут принадлежать нескольким объектам в одной и той же области видимости.
Квалифицируйте имя элемента, указывая имя объекта и точку. Пример:
object.property
Идентификаторы уровня модуля и идентификаторы уровня проекта (имена модуля и имена связанных проектов) могут повторно использоваться в процедуре, хотя это усложняет сопровождение и отладку программы. Но, если нужно сослаться в одной процедуре на оба элемента, необходимо квалифицировать элемент с более широкой областью видимости. Например, если
MyID
объявляется на уровнеMyModule
модуля , а затем переменнаяуровня процедуры объявляется с тем же именем в модуле, ссылки на переменную уровня модуля должны быть соответствующим образом квалифицированы:Dim MyID As String Sub MySub MyModule.MyID = "This is module-level variable" Dim MyID As String MyID = "This is the procedure-level variable" Debug.Print MyID Debug.Print MyModule.MyID End Sub
Идентификатор, объявленный на уровне модуля, конфликтует с именем процедуры. Например, эта ошибка возникает, если переменная
MyID
объявлена на уровне модуля, а затем определена процедура с таким же именем:Public MyID Sub MyID '. . . End Sub
В этом случае необходимо изменить можно из имен, так как квалификация с общим именем модуля не разрешит неоднозначность. Имена процедур по умолчанию являются общедоступными (Public), а имена переменных — частными (Private), если они не объявлены как Public.
Для получения дополнительной информации выберите необходимый элемент и нажмите клавишу F1 (для Windows) или HELP (для Macintosh).
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.