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


Недопустимое использование ключевого слова New

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

  • Вы попытались создать экземпляр элемента, который может иметь только один экземпляр. Например, вы попытались создать новый экземпляр модуля , указав Module1 в инструкции, как показано ниже:

      Dim MyMod As New Module1 
    

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

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

        ' Valid syntax to create the variable. 
      Dim MyListBox As ListBox     
      Dim MyFormInst As Form 
      ' Invalid syntax to instantiate the object. 
      Set MyFormInst = New Form 
      Set MyListBox = New ListBox 
    

ListBox и Form — это имена классов, а не конкретные имена объектов. Используйте их, чтобы указать, что переменная будет ссылкой на определенный тип объекта, как в случае с допустимыми операторами Dim выше. Однако вы не можете использовать их для создания экземпляров самих объектов в операторе Set. В операторе Set следует указывать конкретный объект, а не универсальное имя класса:

    ' Valid syntax to create new instance of a form or list box. 
  Set MyFormInst = New Form1 
  Set MyListBox = New List1 

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

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

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