1

所以我想创建一个函数来计算解决问题的“成本”。

我创建了一个包含整数值的一维数组 Sum(m)。这在不同的子过程中被引用。

Function Cost(sum As Integer, a As Integer) As Long

Dim total As Long

'Calculate cost
For m = 1 To 2 * n + 2
    total = total + (sum(m) - a) ^ 2
Next m
Cost = total

End Function

我不确定我应该在该行的括号部分使用什么

Function Cost(sum As Integer, a As Integer) As Long

当我尝试在我的子过程中调用该函数时,我收到错误消息 - Compile Error: Expected array。这发生在行

SolCost = Cost(sum, UBound(x))

我真的很困惑为什么会发生这个错误。这可能是由于严重缺乏 VB 经验。希望你们能帮助我。

如果您需要更多信息,请随时询问。任何帮助是极大的赞赏。

4

1 回答 1

0

你不能UBound像这样的多维数组。您必须UBound是数组的一个特定维度。所以如果X(i,j)是你的数组,你必须要么UBound(X,1)表示第一个维度,要么表示UBound(X,2)第二个维度。这可以扩展到您拥有的任何维度。看看w3schools,他们的文章涵盖了多维数组。

于 2013-04-22T23:59:41.927 回答