我对VBA很陌生,所以如果这个问题看起来很傻,我很抱歉:我已经设置了一个UserForm,其中包含一些控件,并创建了一个名为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错误(Object Required(。我应该在函数中将MyField
声明为不同类型的变量吗?
函数和我调用它的点都在Userform模块内部。
任何帮助都将不胜感激。
ResetMyField(ProjectReference)
使用括号,尝试将ProjectReference
组合框的默认属性传递到ResetMyField
中。组合框的默认属性是Value
,而不是Object
,ResetMyField
需要Object
,因此出现错误("Object Required"(。
删除括号:
ResetMyField ProjectReference
还要注意,If MyField = ProjectReference Then
再次尝试比较MyField
和ProjectReference
的默认属性,在组合框的情况下,这将意味着If MyField.Value = ProjectReference.Value Then
如果你想知道MyField
是ProjectReference
,那么它就是
If MyField Is ProjectReference Then