18

测试同一自定义对象类型的两个变量是否引用同一对象的运算符或函数是什么?我试过了

If myObject = yourObject Then

但是得到一个运行时错误 438 对象不支持这个属性或方法。我猜这告诉我重写'='运算符来测试两个对象的所有字段是否具有相同的值。但我想要的是测试它们是否是同一个对象。

4

2 回答 2

38

我猜这告诉我重写'='运算符来测试两个对象的所有字段是否具有相同的值。

不,它告诉您对象没有默认属性,否则会调用该属性,并比较返回的结果。

你用Is

If myObject Is yourObject Then 
于 2012-06-28T23:59:41.717 回答
-1

您需要以某种方式序列化对象,然后按属性值比较属性。"is" 操作符是愚蠢的,它只有在另一个对象是分配给比较变量的同一个实例时才匹配。我建议使用 jsonStringify 库。我从在 Excel VBA 中解析 JSON帖子开始为我的 DexTools.xlam 开源项目https://github.com/dexterial/Dextools/tree/master/Main改编了一个。由于我添加了许多其他 excel 对象序列化/散列选项,它具有更多附加功能,并且它是使用 DexTools 合并的 vba 测试驱动开发制作的。它仍在进行中,所以不要指望奇迹

于 2018-12-09T18:05:35.440 回答