programing

VBA 사전을 통해 반복하시겠습니까?

i4 2023. 5. 21. 10:56
반응형

VBA 사전을 통해 반복하시겠습니까?

MS Runtime Scripting 라이브러리의 Dictionary 클래스를 사용하여 보고서 템플릿의 레이블 위치를 저장하고 있습니다.파이썬에서처럼 사전의 모든 키 값 쌍을 반복할 수 있는 방법이 있습니까?

키를 행 번호(A열에 모두 들어갑니다)로 사용하고 싶습니다. 값은 레이블 헤더가 됩니다.

다음과 같은 것:

For Each key in dict
    Range("A" & key).Value = dict(key)
Next key

시도:

For Each varKey In oDic.Keys()
    Range("A" & varKey).Value = oDic(varKey)
Next

키 반복기는 다음과 같이 선언해야 합니다.Variant.

이를 위해 많은 것은 아니지만 배열과 같이 키당 여러 개의 값이 있는 경우에는 코드가 조금 더 필요합니다.제가 여기에 글을 올린 것은 처음이라 제가 잘못했다면 사과드립니다...

    Dim dict As New Scripting.Dictionary
    Dim k As Variant
    Dim v As Variant

    Set dict = New Scripting.Dictionary
    'Add code to populate your dictionary

    For Each k In dict.Keys()
        Debug.Print k, Join(dict(k), ",") 'Prints out all the details for the key
        For Each v In dict(k)
            Debug.Print v
        Next
    Next k

이 코드의 일부는 VBA Dictionary with Dynamic Arrays에서 제공됩니다.

언급URL : https://stackoverflow.com/questions/1296225/iterate-over-vba-dictionaries

반응형