如何在VBA中查找返回类型

Mah*_*yar 8 ms-access vba access-vba

我有一个MS Access应用程序,并找到返回类型的函数有问题.有没有办法找到对象的返回类型?我有类型不匹配错误.

Han*_*sUp 12

如果它是内置函数,请查看Access帮助主题.

如果它是用户定义的函数,请检查其定义.

如果两者都不能,请使用该TypeName()函数告诉您返回的数据类型YourFunction().

Debug.Print TypeName(YourFunction())
Run Code Online (Sandbox Code Playgroud)

如果YourFunction()返回变量,TypeName()将告诉您变体子类型.

海因兹建议VarType()而不是TypeName().我习惯性地TypeName()首先只是因为它对我来说更快,而且我很少关注它的局限性.但我同意海因齐; VarType()更好.

J.P.提供了两个有用的建议.首先,您可以创建一个简单的过程,声明Variant变量并将函数的返回值赋给变量.然后F9在第一Debug.Print行添加一个临时断点(with ),运行该过程,F8逐行逐行移动,并在Locals窗口中监视变量的值.(从VB编辑器的主菜单打开该窗口.查看 - >本地窗口)

Public Sub examine_YourFunction()
    Dim varFoo As Variant
    Debug.Print "start"
    varFoo = YourFunction()
    Debug.Print varFoo
End Sub
Run Code Online (Sandbox Code Playgroud)

第二,对于具有返回类型的内置函数,您可以在键入函数名称和/或参数时利用Intellisense查看返回类型.

  • +1,非常好的建议.如果你需要在运行时进行类型检查,我建议使用[VarType函数](http://office.microsoft.com/en-us/access-help/vartype-function-HA001228932.aspx)代替(避免魔术弦). (3认同)