我目前正在调试一个使用VBA 2005编写的数据库应用程序,它无法与VBA 2010及以上版本一起使用。其中一个(许多)问题是它使用函数IsNothing来测试对象变量是否附加了对象。但是,这个函数似乎已经在2010和2013中被弃用了。在VBA 2013中有没有类似于这个函数的替代品呢?
IsNothing
从未成为VBA函数,很可能是作为Is Nothing
的语法糖而编写的。
VB拥有一个提供相同功能的IsNothing
函数。根据我的经验,定义与熟悉的VB函数相似的VBA函数是很常见的。IsNothing
实现,应该可以满足您的需求——要么使IsNothing
调用按原样工作……或者提供一种内联等效代码并去除语法糖的基础:'**********************************************************
'* Function: Returns true if argument evaluates to nothing
'* 1. IsNothing(Nothing) -> True
'* 2. IsNothing(NonObjectVariableOrLiteral) -> False
'* 3. IsNothing(ObjectVariable) -> True if instantiated,
'* otherwise False
'**********************************************************
Public Function IsNothing(pvarToTest As Variant) As Boolean
On Error Resume Next
IsNothing = (pvarToTest Is Nothing)
Err.Clear
On Error GoTo 0
End Function 'IsNothing
Access VBA没有包含IsNothing
函数。如果您以前有这个函数,那么它是一个自定义函数。
如果您无法找到旧版本,可以创建一个新的函数。
Public Function IsNothing(ByRef pObject As Variant) As Boolean
IsNothing = (pObject Is Nothing)
End Function
IsNothing
函数”? - J0e3gan怎么样?
Dim x as Object
If x is Nothing then
IsNothing本身从未是VBA函数...
If obj Is Nothing Then...
这个方法可能对你有用,但是可能不会产生你期望的IsNothing函数相同的结果。根据你想要确定的内容,你可能需要编写更具体的检查代码。