我偶然发现了一些我不明白的行为。考虑以下功能:VBA对象类型
Function identity(n As Integer) As Integer
identity = n
End Function
显然这不是最实用的功能,但它突出了我的问题。
这工作正如我所期望的,只是返回它的输入是一个整数,否则会引发错误。但是,如果我将输出更改为一个对象,我仍然期望这能起作用,因为据我了解,整数是对象。唉,相反,我得到了'价值错误'。
如果输入和输出类型都更改为对象,则也会发生这种情况。
当输入更改为Object但输出仍为整数时,函数表现出真正好奇的行为。如果它是通过'= identity(3)'从excel中调用它的错误,但是如果它通过'= identity(A1)'调用,其中A1包含3,它会返回正确的值。
任何人都可以解释发生了什么?我是新来的VB,但我已经在许多不同的语言之前编程,我从来没有见过这样的事......
这仍然失败'=身份(3)'。有一些我可以使用的根类吗?我原以为是Object ... – DomJack
我在VBA中添加了一些关于对象与非对象的更多细节 – barrowc