Недопустимое использование ключевого слова 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 и обратная связь.