简体   繁体   中英

VBA function for Controls in Userform

I'm very new to VBA so I apologise if the question seems silly: I have set up a UserForm with some controls in it, and created a function called ResetMyField as per below:

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

When I call this function using ResetMyField(ProjectReference) VBA comes out with a 424 error (Object Required). Should I be declaring MyField as a different type of variable in the function?

Both the function and the point at which I call it are inside the Userform module.

Any help would be much appreciated.

ResetMyField(ProjectReference) , with the parentheses , tries to pass the default property of the ProjectReference combobox into ResetMyField . The default property of a combobox is Value , and that is not an Object , and ResetMyField expects an Object , hence the error ("Object Required").

Remove the parentheses :

ResetMyField ProjectReference

Also note that If MyField = ProjectReference Then , again, tries to compare default properties of MyField and ProjectReference , which in case of comboboxes will mean If MyField.Value = ProjectReference.Value Then .
If you want to know if MyField is ProjectReference , then it's

If MyField Is ProjectReference Then

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM