我试图将数据存储在数组中,但在尝试存储数据时抛出了"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计算,但在我写其他东西之前,它们都已经结束了。
有什么想法吗?这件事把我难住了。
将Dim CallsForecasted(1 To 22, 1 To 6) As Double
移动到任何子例程或函数之上。
如果我在过程中放低声明,我会得到一个"只有注释可能出现在End Sub、End Function或End Property之后"的编译错误。奇怪的是,它仍然允许我运行调用CallsForecasted
的过程,然后我就不再得到编译错误了。但我确实得到了你看到的"编译错误:子或函数未定义"。
所以,这是令人困惑的!