2009-08-21 5 views
1

안녕하세요 모두 오류가 발생하는 경우공용 Dynamic Array에서 오류를 반환합니다.

Run-time error '9': 
Subscript out of range 

다음 코드 사용

Public newarray() As String 

Sub test1() 
    Dim int1 As Integer 
    int1 = 0 
    Do 
     int1 = int1 + 1 
     newarray(int1) = int1 * 5  
    Loop Until int1 > 3 
End Sub 

배열을 축소 할 때

Public newarray(4) As string 
작동하지만 동적 배열을 선언하고 싶습니다. 도와주세요. 고맙습니다.

답변

8

당신은 ReDim를 사용하여 배열의 크기를 할당 할 수 있습니다 :

Public newarray() As String 

Sub test1() 

    Dim int1 As Integer 
    ReDim newarray(4) 

    int1 = 0 

    Do 

     int1 = int1 + 1 

     newarray(int1) = int1 * 5 

    Loop Until int1 > 3 

End Sub 

이 전체 배열을 재정의합니다. 배열의 내용을 보존하고 크기를 변경해야하는 경우 ReDim Preserve newarray(4)을 사용할 수 있습니다.

코드는 배열의 기반이 1이라고 가정합니다. 0 기준이 될 수 있습니다 (VB의 옵션으로 설정).

int1 = LBound(newarray) 

    Do 

     newarray(int1) = int1 * 5 

     int1 = int1 + 1 


    Loop Until int1 > UBound(newarray) 
+2

당신은'ReDim을 newarray' –

+0

(1 ~ 5) 같은 ReDim 문에 인덱스를 지정할 수 있습니다 코드, 당신은 당신의 카운터의 한계에 대한 LBound/UBound를 사용해야합니다이 옵션에 관계없이 작동하는지 확인하려면 고맙습니다! 도움이됩니다. – Yoga

관련 문제