小编GWD*_*GWD的帖子

VBA 在 If 语句中采用错误的分支 - 严重的编译器错误?

标题中的问号只是因为我非常不愿意将任何东西称为编译器错误,但在这种情况下,如果有人能以任何其他方式解释这种行为,我会感到惊讶。

重现问题的代码非常非常简单。在标准模块中,我们有以下内容:

Sub CompilerBug()
    Dim oClass As cClass
    Set oClass = New cClass

    If False Then
        Debug.Print "This doesn't print, as it shouldn't."
    End If

    If Falsee(oClass.Clone) Then
        Debug.Print "This does print, although it shouldn't!"
    End If
End Sub

Public Function Falsee(oClass As cClass) As Boolean
    Falsee = False
End Function
Run Code Online (Sandbox Code Playgroud)

我们cClass在名为 cClass 的类模块中定义了一个类 ( ),包含以下代码:

Public Function Clone() As cClass
    Dim oClass As cClass
    Set oClass = New cClass
    Set Clone = oClass
End Function

Private Sub …
Run Code Online (Sandbox Code Playgroud)

oop excel vba if-statement compiler-bug

34
推荐指数
1
解决办法
1087
查看次数

标签 统计

compiler-bug ×1

excel ×1

if-statement ×1

oop ×1

vba ×1