为什么突然出现“编译错误:需要常量表达式”?

时间:2019-11-22 18:38:23

标签: excel vba constant-expression

我有以下代码:

Private Enum dbi
        m = 0
        d = 1
        y = 2
        hh = 3
        mm = 4
        ss = 5
        ap = 6
        size = 7
End Enum

...

Sub CompileData()

    ...

    ReDim startEnd(deplCount * 2) As Date
    ReDim excludes(deplCount * 2) As Date
    ReDim hasExcls(deplCount) As Boolean

    ReDim deplLabels(deplCount) As MSForms.Label
    ReDim startLabels(deplCount) As MSForms.Label
    ReDim endLabels(deplCount) As MSForms.Label
    ReDim exclLabels(deplCount) As MSForms.Label
    ReDim exclChecks(deplCount) As MSForms.CheckBox

    ReDim mdyLabels(dbi.size * 2 * deplCount) As MSForms.Label

    ReDim dateGroup(dbi.size * 4 * deplCount) As MSForms.TextBox
    ReDim pctLabels(dbi.size * 4 * deplCount) As MSForms.Label

    Dim okButton As MSForms.CommandButton

    ...

End Sub

请注意,这两个块位于同一模块中,因此即使Enum是私有的,CompileData仍应能够访问它。

我正在重新调整一些数组的大小,因为我不确定在程序启动之前需要从此用户表单中收集多少数据。这段代码已经工作了一个月,但是现在由于某种原因,我在CompileData子代码中收到一个常量表达式编译错误,该错误专门突出显示了“ dbi.size”。枚举突然不被视为常量定义吗?如果我要重新调光,那还重要吗?

1 个答案:

答案 0 :(得分:0)

使用工具后,似乎所有对Enum的引用均不起作用。我摘下了“私人”手柄,从而解决了该问题。

相关问题