【发布时间】:2014-11-26 16:55:39
【问题描述】:
我的代码在 VB 中动态创建一个数组 Public Function getIndvidualCuts(dblsawKerf As Double) As Double() '返回所有切割的数组
Dim intQuantity As Integer
intQuantity = 0
Dim i As Integer
intQuantity = 0 ' an integer to store the total quanitiy
For i = 0 To Me.getNumCuts() - 1 'for each different cut
intQuantity = intQuantity + getCutQuantity(i) 'add the cut quantity to the total quantity
Next
Dim total() As Double 'initialize the total cuts array to make room for each individual cut
ReDim total(intQuantity - 1) **error is here**
我不明白为什么 ReDim 会引发错误。我一直在搜索,但我发现的只是人们使用 ReDim Preserve 的情况如果您对动态数组有不同的解决方案,请分享它
提前致谢
【问题讨论】:
-
下标是否可以为 -1(即 intQuantity = 0)。我不相信你能做到。
-
是的。我同意@MattCremeens。 Me.getNumbCuts() 很可能返回 1 或 0,这会导致 intQuantity 保持为 0,并且由于您不能拥有长度为 -1 的数组,因此会出现错误。
-
另外,如果
getCutQuantity返回非整数,我相信你可能会遇到麻烦。 -
这就是@MattCremeens。谢谢您的帮助。我发现了错误并已修复,感谢您帮助解决我的简单错误。
-
@MattCremeens 将您的建议发布为答案,Noah 用户可以将其标记为答案。
标签: excel dynamic-arrays excel-2013 vba