Я действительно что-то борюсь с чем-то здесь. У меня есть модуль класса, назовем его FormMan, у которого есть куча методов, связанных с большим количеством пользовательских форм, которые у меня есть в моем проекте. Один конкретный метод следует вызывать из множества разных мест и довольно прост - он просто добавляет определенное количество элементов управления в форму и расширяет высоту форм для размещения этих новых элементов управления.VBA UserForm Object
Пользователь передает количество элементов управления и пользовательскую форму.
oF.AddControlsToForm iNumberOfControls,frmTest
В модуле FormMan класса:
Public Sub Addcontrols(iNum as integer, oForm as userform)
//stuff happens here, oForm is used extensively
oForm.Height = i //object does not support this property or method
frmTest.Height = i //works
oForm.Show //object does not...
frmTest.show //works
end sub
В окне Locals, oForm не имеют свойство высоты, так что вполне справедливо. Но oForm был определен как frmTest. Могу сказать oForm.BackColor = vbred
, и я могу установить ctl = oform.TextBox1
, например
Это должна быть общая процедура, которая может добавить кучу элементов управления в любую форму. Я попробовал загрузку и показ формы, прежде чем назначать ее для oForm.
Почему высота и показать свойства и методы пользовательских форм, но не объектов, объявленных как пользовательские формы? Что я делаю не так?
Действительно оцените любую помощь.
Я был настроен до того, как начал этот проект. Спасибо за вашу помощь. – user51498
Нет проблем! Я научился любить VBA со временем, если только b/c Excel является очень надежным фоном для приложений. – notnot