数组被错误地称为子或函数

时间:2013-02-23 16:55:39

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

我正在尝试将数据存储在数组中,但在尝试存储数据时会抛出"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计算,但是在我写完任何其他内容之前它们都已经结束。

有什么想法吗?这个让我完全难过。

1 个答案:

答案 0 :(得分:0)

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

如果我在程序中放置较低的声明,我会得到“只有注释可能出现在End Sub,End Function或End Property之后”编译错误。奇怪的是,它仍然允许我运行调用CallsForecasted的过程,然后我不再得到编译错误。但我确实得到了你所看到的“编译错误:Sub或Function not defined”。

所以,这很令人困惑!