2017-12-21 14 views
0

모든 배열 좌표 값을 하나씩 처리하는 대신 모든 값을 한 번에 할당하는 다차원 배열을 만들고 싶습니다. 나는 이것을 '배열 리터럴'이라고 부름을 믿습니다. 어쨌든, 모든 변수는 문자열 값입니다. 아래의 코드는 구문 오류가 아니지만 단계를 통해 "컴파일 오류 : pkg = 줄에 배열에 할당 할 수 없습니다"라는 메시지가 나타납니다. 이 작업을 어떻게 수행합니까?VBA 다차원 배열 - 배열 리터럴 구문

Sub test_array2() 

Dim pkg(2, 2) As String 

pkg = [{"PRetail","Retail Packaged"};{"PFoodservice","Foodservice 
Packaged"}] 

Debug.Print pkg(1, 1) 

End Sub 
+2

그냥 경고 - 내에서 "식별자"(즉, 부분 '['...']')는 255 자로 제한됩니다. 제한을 초과하면 "식별자가 너무 깁니다"구문 오류가 발생합니다. – YowE3K

답변

3

당신은 같은 배열에 직접 할당 할 수 없습니다, 그래서 당신은 변형 사용할 필요 :이 이런 식으로 일에 대한

Sub test_array2() 

    Dim pkg As Variant 

    pkg = [{"PRetail","Retail Packaged";"PFoodservice","FoodservicePackaged "}] 

    Debug.Print pkg(1, 1) 

End Sub 
+0

'Dim pkg (2, 2)'와 같은 고정 크기의 배열이 아닌 변형되지 않은 배열에 할당 할 수 있습니다. 이 경우 배열은'[] '의 리턴 타입 때문에'Variant'를 포함해야합니다. 그래서 올바른 선언은'Dim pkg() As Variant'가 될 것이고, 그 시점에서'Dim pkg As 변종은 기술적 인 부분입니다. – GSerg

+0

@GSerg - 설명해 주셔서 고맙습니다. –