Reputation: 11
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.
Upvotes: 1
Views: 193
Reputation: 78155
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").
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
Upvotes: 2