Поделиться через


Обнаружено неоднозначное имя

Идентификатор конфликтует с другим идентификатором или требует квалификации. Эта ошибка имеет следующие причины и способы решения:

  • Элементы с одинаковыми именами могут принадлежать нескольким объектам в одной и той же области видимости.

    Квалифицируйте имя элемента, указывая имя объекта и точку. Пример:

    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 и обратная связь.