>

VBA에 추가하고 싶은 배열이 있으며 사전의 항목입니다. 다음과 같이 할당됩니다 :

dict.Add Key:=arr(i, 1), Item:=Array(arr(i, 2), arr(i, 3), arr(i, 4), arr(i, 5), arr(i, 6), arr(i, 7), arr(i, 8))

그러나 VBA의 배열은 매우 정적이며 단순히 추가 할 수 없다는 것을 이해합니다. 배열의 요소를 풀고 새 항목으로 새 배열을 만들어 사전의 항목으로 다시 할당하는 방법이 있습니까?

도움이 필요합니다.


  • 답변 # 1

    사전 항목의 사본에서만 Preserve로 ReDim을 수행 할 수 있습니다. 분명히 변형 배열 사전 항목을 다시 정의하는 것은 허용되지 않습니다 ..

    Sub meh()
        Dim i As Long, itm As Variant, dict As Object
        Set dict = CreateObject("scripting.dictionary")
        dict.Add Key:=("a"), Item:=Array(1, 2, 3)
        For i = LBound(dict.Item("a")) To UBound(dict.Item("a"))
            Debug.Print dict.Item("a")(i)
        Next i
        itm = dict.Item("a")
        ReDim Preserve itm(LBound(itm) To UBound(itm) + 1)
        itm(UBound(itm)) = "new"
        dict.Item("a") = itm
        For i = LBound(dict.Item("a")) To UBound(dict.Item("a"))
            Debug.Print dict.Item("a")(i)
        Next i
    End Sub
    
    

  • 이전 C ++ 클래스의 생성자
  • 다음 Bigquery에서 GCS 분할 크기로 테이블 내보내기