1

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

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

    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 计算,但在我编写其他任何内容之前它们都已结束。

有任何想法吗?这把我完全难住了。

4

1 回答 1

0

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

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

所以,很混乱!

于 2013-02-23T17:10:25.140 回答