Ошибка пользовательской формы: сбой метода «Свойства» объекта «_VBComponent» - PullRequest
0 голосов
/ 29 мая 2018

Я хочу отредактировать свой объект UserForm в VBE с кодом.

Когда я использую следующее, я получаю сообщение об ошибке, как в заголовке сообщения:

Sub myTest()
    ThisWorkbook.VBProject.VBComponents("UserForm1").Properties("Caption") = "myCaption"
End Sub

Я пытался изменить "Подпись""к" подписи ", та же ошибка.Также эта ошибка возникает, когда я пытаюсь установить свойства Width или Height, не всегда в первый раз, но когда я снова запускаю код для изменения размера.

Правка 1: «Доверяйте доступ к проекту VBAобъектная модель "в настройках макроса включена.

Редактировать 2: Ошибка не возникает при создании новой рабочей книги и пользовательской формы.Это происходит, когда пользовательская форма воссоздается в книге, в которой уже произошла ошибка.

Редактировать 3: добавление Unload UserForm1 или Set UserForm1 = Nothing перед не помогает.

Редактировать 4: Для новыхКнига, если я создаю UserForm и запускаю этот код из модуля, но после щелчка правой кнопкой мыши на UserForm -> View Object, я получаю сообщение об ошибке: «Не удается переместить фокус на элемент управления, потому что он невидим, не включен илитип, который не принимает фокус ".Когда я подтверждаю, что при последовательном запуске макроса я получаю сообщение об ошибке, как в заголовке сообщения.

Редактировать 5: То же самое происходит в Excel 2010 и 2016.

1 Ответ

0 голосов
/ 22 октября 2018

Можно просто попробовать это

Sub myTest()
 ThisWorkbook.VBProject.VBComponents("UserForm1").Activate
 ThisWorkbook.VBProject.VBComponents("UserForm1").Properties("Caption") = "myCaption"
End Sub

Он работает в Excel 2007 и рассчитан на работу в любой версии.Пожалуйста, обратитесь к моему ответу на сообщение После импорта пользовательской формы в VBComponents Свойства не могут быть прочитаны

...