Excel 如何将用户定义类型的变量设置为VBA中的等效变量?
我有一个执行搜索的VBA函数,如果找到匹配项,则需要返回用户定义类型的实例,否则它将不返回任何内容。不幸的是,我发现用户定义类型的变量无法设置或与Excel 如何将用户定义类型的变量设置为VBA中的等效变量?,excel,vba,data-structures,null,Excel,Vba,Data Structures,Null,我有一个执行搜索的VBA函数,如果找到匹配项,则需要返回用户定义类型的实例,否则它将不返回任何内容。不幸的是,我发现用户定义类型的变量无法设置或与Nothing进行比较。我可以使用一些等价物吗?你从来没有一个经典意义上的UDT实例——它是一种非对象/引用类型,这就是为什么与“无”进行比较不起作用的原因。要确定UDT是否为空,您需要检查其一个或多个成员,并根据发现的内容做出决定。(您可以在应用值时添加设置的特定标志成员,向函数添加byref success参数,当然也可以使用类)。@AlexK。谢
Nothing
进行比较。我可以使用一些等价物吗?你从来没有一个经典意义上的UDT实例——它是一种非对象/引用类型,这就是为什么与“无”进行比较不起作用的原因。要确定UDT是否为空,您需要检查其一个或多个成员,并根据发现的内容做出决定。(您可以在应用值时添加设置的特定标志成员,向函数添加byref success参数,当然也可以使用类)。@AlexK。谢谢,我将使用这种方法!我正试图习惯VBA,但我是一个C#NET人,所以我有很多东西要学!:-)@亚历克斯克。你能把你的评论抄下来作为答案吗,这样我就可以把它归功于我了!:-)来自@AlexK的好评。另一种方法是从函数返回一个变量,使用IsEmpty()
进行测试,然后转换为UDT。。