标签: class-terminate

如何修复这个已有 8 年历史的 VBA 64 位编译器错误?

所以这是错误:在64 位VBA 主机(例如 Access 365 64 位或 Excel 2016 64 位)中创建一个类模块SomeClass

' this needs to be here to trigger the bug: 
Private Sub Class_Terminate()
End Sub
Run Code Online (Sandbox Code Playgroud)

然后是一些模块Test

Function ReturnFalse(o As Object) As Boolean
    ReturnFalse = False
End Function

Sub Test()
    Debug.Print ReturnFalse(New SomeClass)
    If ReturnFalse(New SomeClass) Then
        Debug.Print True
    Else
        Debug.Print False
    End If    
End Sub
Run Code Online (Sandbox Code Playgroud)

现在,如果您使用的是32 位VBA 主机并在即时窗口中运行“测试” ,则会显示预期结果:

False
False
Run Code Online (Sandbox Code Playgroud)

但是,如果您使用的是64 位VBA 主机,则会出现:

False
True
Run Code Online (Sandbox Code Playgroud)

除了,当您删除或重命名Class_Terminate()sub …

excel 64-bit ms-access vba class-terminate

58
推荐指数
1
解决办法
1万
查看次数

标签 统计

64-bit ×1

class-terminate ×1

excel ×1

ms-access ×1

vba ×1