2017-09-22 14 views
0

VBA에서 배열을 비교할 수없는 이유를 알지 못합니다. 0 1 2 3을 시작하는 배열을 만들었습니다. 0에서 0까지를 비교하려고하는 첨자 오류 때문에 비교를 추가 했으므로 1에서 비교를 시작하고 계속할 수 있습니다. 이제 유형 불일치 13이 표시되고 데이터 유형이 다른 이유/작동하지 않는 이유를 알 수 없습니다. 나는 for 루프가 int 나 something으로 간주되지 않는다고 추측한다. 그것은 = CoordinatesArray (I)에서 CoordinatesArray 실패 (I-1)유형 불일치 배열 위치 비교 Vba

코드 :

For i = 0 To NumLines - 1 
     coordx1 = (vLines(12 * i + 6)) 
     coordy1 = (vLines(12 * i + 7)) 
     coordz1 = (vLines(12 * i + 8)) 
     CoordinatesArray(i) = Array(coordx1, coordy1, coordz1) 
     If i > 0 Then 
      If CoordinatesArray(i) = CoordinatesArray(i - 1) Then 
       coordx1 = (vLines(7)) 
+3

작은 코멘트 : 정확한 것으로 표시하지 않고 TimWilliams 응답을 사용했음을 확인합니다. 질문에 다시 돌아가서 대답으로 체크 표시를 클릭하여 올바른 답변을 표시하십시오. 피드백을 보내지 않으면 다른 사용자가 질문에 응답하지 않습니다. –

답변

2

당신은 개별적으로 가변 배열의 각 값을 비교해야합니다

For i = 0 To NumLines - 1 
    coordx1 = (vLines(12 * i + 6)) 
    coordy1 = (vLines(12 * i + 7)) 
    coordz1 = (vLines(12 * i + 8)) 
    CoordinatesArray(i) = Array(coordx1, coordy1, coordz1) 
    If i > 0 Then 
     If CoordinatesArray(i)(1) = CoordinatesArray(i - 1)(1) And _ 
      CoordinatesArray(i)(2) = CoordinatesArray(i - 1)(2) And _ 
      CoordinatesArray(i)(3) = CoordinatesArray(i - 1)(3) Then 
      coordx1 = (vLines(7))