【问题标题】:Array being called as a sub or function incorrectly数组被错误地称为子或函数
【发布时间】:2013-02-09 04:25:17
【问题描述】:

我正在尝试将数据存储在数组中,但是当我尝试存储数据时会抛出 "Compile error: Sub or Function not defined"

我在 sub 之前声明了CallsForecasted,以便将其公开如下。

    Dim CallsForecasted(1 To 22, 1 To 6) As Double

这是我得到错误的循环。

    For icount = 1 To 22
        For jcount = 1 To 6
            Select Case jcount
            Case 1
                CallsForecasted(icount, jcount) = MondayForecast * Worksheets("Erlang").Range("B" & (2 + icount))
            Case 2
               CallsForecasted(icount, jcount) = TuesdayForecast * Worksheets("Erlang").Range("C" & (2 + icount))
            Case 3
                CallsForecasted(icount, jcount) = WednesdayForecast * Worksheets("Erlang").Range("C" & (2 + icount))
            Case 4
                CallsForecasted(icount, jcount) = ThursdayForecast * Worksheets("Erlang").Range("C" & (2 + icount))
            Case 5
                CallsForecasted(icount, jcount) = FridayForecast * Worksheets("Erlang").Range("C" & (2 + icount))
            Case 6
                CallsForecasted(icount, jcount) = SaturdayForecast * Worksheets("Erlang").Range("D" & (2 + icount))
            End Select
        Next jcount
    Next icount

当抛出编译器错误时,"CallsForecasted(icount, jcount) =" 的第一个实例被突出显示(不是整行,只是那部分)。存储在数组中的所有内容都是一个数字。我认为编译器试图将数组作为子函数或函数调用。

我确实在代码的开头定义了函数,以便我可以使用 Erlang 计算,但在我编写其他任何内容之前它们都已结束。

有什么想法吗?这把我完全难住了。

【问题讨论】:

    标签: function excel multidimensional-array compiler-errors vba


    【解决方案1】:

    Dim CallsForecasted(1 To 22, 1 To 6) As Double 移动到任何子例程或函数上方。

    如果我将声明放在过程中的较低位置,我会收到“仅在 End Sub、End Function 或 End Property 之后出现注释”编译错误。奇怪的是,它仍然让我运行调用CallsForecasted 的过程,然后我不再收到编译错误。但是我确实收到了您看到的“编译错误:未定义子或函数”。

    所以,这很混乱!

    【讨论】:

    • 谢谢道格!我会试一试。很高兴知道我不是唯一一个。 :D
    • 是的,做到了!谢谢道格!我想既然我在 sub 之前对它进行了 delcared,它会起作用,但显然它必须一直在顶部。感谢您帮助我解决新手错误。
    猜你喜欢
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    • 2015-10-26
    • 2012-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多