Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如何将用户定义类型的变量设置为VBA中的等效变量?_Excel_Vba_Data Structures_Null - Fatal编程技术网

Excel 如何将用户定义类型的变量设置为VBA中的等效变量?

Excel 如何将用户定义类型的变量设置为VBA中的等效变量?,excel,vba,data-structures,null,Excel,Vba,Data Structures,Null,我有一个执行搜索的VBA函数,如果找到匹配项,则需要返回用户定义类型的实例,否则它将不返回任何内容。不幸的是,我发现用户定义类型的变量无法设置或与Nothing进行比较。我可以使用一些等价物吗?你从来没有一个经典意义上的UDT实例——它是一种非对象/引用类型,这就是为什么与“无”进行比较不起作用的原因。要确定UDT是否为空,您需要检查其一个或多个成员,并根据发现的内容做出决定。(您可以在应用值时添加设置的特定标志成员,向函数添加byref success参数,当然也可以使用类)。@AlexK。谢

我有一个执行搜索的VBA函数,如果找到匹配项,则需要返回用户定义类型的实例,否则它将不返回任何内容。不幸的是,我发现用户定义类型的变量无法设置或与
Nothing
进行比较。我可以使用一些等价物吗?

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