Функция VBA для элементов управления в пользовательской форме - PullRequest
0 голосов
/ 26 ноября 2018

Я очень плохо знаком с VBA, поэтому я прошу прощения, если вопрос кажется глупым: я создал пользовательскую форму с некоторыми элементами управления в ней и создал функцию с именем ResetMyField, как показано ниже:

Function ResetMyField(MyField As Object)
    If MyField = ProjectReference Then
        'do something different and then
    End If
    MyField.Value = ""
End Function

Когда я вызываю эту функцию, используя ResetMyField(ProjectReference) VBA выходит с ошибкой 424 (требуется объект).Должен ли я объявлять MyField как переменную другого типа в функции?

И функция, и точка, в которой я ее вызываю, находятся внутри модуля Userform.

Любая помощь будетвысоко ценится.

1 Ответ

0 голосов
/ 26 ноября 2018

ResetMyField(ProjectReference), с круглыми скобками , пытается передать свойство по умолчанию комбинированного списка ProjectReference в ResetMyField.Свойством по умолчанию для комбинированного списка является Value, и это не Object, а ResetMyField ожидает Object, следовательно, ошибка («Требуется объект»).

Удалитькруглые скобки :

ResetMyField ProjectReference

Также обратите внимание, что If MyField = ProjectReference Then, опять же, пытается сравнить свойства по умолчанию MyField и ProjectReference, что в случае со списком будет означать If MyField.Value = ProjectReference.Value Then.
Если вы хотите знать, если MyField равно ProjectReference, то это

If MyField Is ProjectReference Then
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...