방법 [원본] VBA 연구 노트 (312) VBA 생성 사전 및 모범 사례의 다양한

사전 방법들을 생성

1.1 부가 방법은 사전 생성

  • 하나 하나 추가
  • 필요한주기, 추가를 반복할지 여부를 결정

1.2)) (아이템 (전체 키를 추가하여 전체 어레이를 생성하도록

  • (사이클 키 할당 (어레이 등)) 항목 ()

1.3 할당 루프 배열 생성 방법

  • 사이클 dict5 (I) = ""

 

(2)이 가장 적합한 방법에 사전 생성하는 배열을 생성하기위한 환상의 할당 방법 - 충분히 유연 등을 높은 내결함성

  • 사이클 dict5 (I) = ""
  • 키가 1이 아닌 경우 때문에 새 키를 추가합니다 - 항목을
  • 키 2가 반복 될 때 때문에 오류하지 않습니다
  • 3 키 반복 할 때, 재 할당되기 때문에
     
sub test1()
arr4=array(1,3,5,7,9)

For Each I In arr4
   dict5(I) = k
   k=k+1
Next

end sub

 

코드 3 : 구체적인 처리의 배열을 생성하기위한 방법

Sub testdict100()

Dim dict1 As Object
Dim dict2 As Object
Dim dict3 As Object
Dim dict4 As Object
Dim dict5 As Object

Set dict1 = CreateObject("scripting.dictionary")
Set dict2 = CreateObject("scripting.dictionary")
Set dict3 = CreateObject("scripting.dictionary")
Set dict4 = CreateObject("scripting.dictionary")
Set dict5 = CreateObject("scripting.dictionary")

'生成数组,方法1,逐个
dict1.Add 1, "a"
dict1.Add "1", "a"   '1和"1" 不一样
dict1.Add 3, "c"
dict1.Add 4, "d"
dict1.Add 5, "e"

Debug.Print "dict1"
For Each I In dict1.Keys()
    Debug.Print I & "," & dict1(I)    '虽然不能用dict1.items(index),但ict1(index)  这个可以有
Next
Debug.Print

'生成数组,方法2-1,用数组整体,循环添加
arr1 = Array(1, 2, 3, 4, 5)

For Each I In arr1
   dict2(I) = ""
Next

Debug.Print "dict2"
For Each I In dict2.Keys()      '考虑可以把这个写成一个显示dict的函数把?
    Debug.Print I & "," & dict2(I)
Next
Debug.Print


'生成数组,方法2-2,key item分别也是可以的
arr2 = Array(1, 2, 3, 4, 5)
arr3 = Array(11, 22, 33, 44, 55)
'先保证这2个数组,长度一样

'用同一个变量循环体,应该可以
For I = LBound(arr2) To UBound(arr2)
   dict3(arr2(I)) = arr3(I)
Next

Debug.Print "dict3"
For Each I In dict3.Keys()
    Debug.Print I & "," & dict3(I)
Next
Debug.Print


'生成数组,方法3,用add循环添加
arr4 = [{101,102,103,104,105,101,101}]
For Each I In arr4
   If Not dict4.exists(I) Then
       dict4.Add I, ""
   End If
Next

Debug.Print "dict4"
For Each I In dict4.Keys()
    Debug.Print I & "," & dict4(I)
Next
Debug.Print



'生成数组,方法4,查询式循环添加
'适应性很强,没有则添加,有则赋值,重复不出错只是再赋值

For Each I In arr4
   dict5(I) = ""
Next


Debug.Print "dict5"
For Each I In dict5.Keys()
    Debug.Print I & "," & dict5(I)
Next
Debug.Print



End Sub

 

게시 된 370 개 원래 기사 · 원 찬양 45 ·은 90000 +를 볼

추천

출처blog.csdn.net/xuemanqianshan/article/details/103923936