왜 9

2014-11-26 7 views
0
내 코드가 동적으로 더블() '수익률과의 배열로 (더 블룸 dblsawKerf) VB 공공 기능 getIndvidualCuts의 배열을 생성

모든 상처왜 9

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에서 오류가 발생하는 이유를 모르겠습니다. 내가 검색되었지만 사람들이 아닌 것입니다 사전에 그것을 잘못된 배열 첨자의

+3

첨자가 -1 (즉, intQuantity = 0) 일 수 있습니까? 네가 그걸 가질 수 있다고 나는 믿지 않는다. –

+0

예. @MattCremeens에 동의합니다. 대부분의 Me.getNumbCuts()는 1 또는 0을 반환하므로 intQuantity가 0에 머물러있게되고 -1 길이의 배열을 가질 수 없으므로 오류가 발생합니다. – JNevill

+0

또한,'getCutQuantity'가 정수가 아닌 값을 반환하면 문제가 발생할 수 있다고 생각합니다. –

답변

1

예를

감사를 공유하시기 바랍니다 동적 배열에 대한 다른 솔루션이있는 경우을 유지 ReDim을를 사용하는 어디에서 찾을 수있는 모든 상황은 - 정수 또는 음의 첨자. 프로그램의 어느 지점에서 intQuantity = 0이라면 배열 -1에 대한 아래 첨자가됩니다. 마찬가지로 getCutQuantity이 정수가 아닌 값을 반환하면 배열의 첨자는 정수가 아닙니다. 도움이 된 것을 기쁘게 생각합니다.