返回列表 上一主題 發帖

[發問] 字典使用問題

回復 1# jesscc
程式碼修改如下:
  1. Option Base 1
  2. Sub test()

  3. With Sheets("工作表1")
  4. Set D = CreateObject("Scripting.Dictionary")

  5. For Each B In .Range(.[B6], .[B100].End(xlUp))
  6. Dim Ar(10)
  7.     For p = 1 To 10
  8.     Ar(p) = B.Offset(, p).Value
  9.     Next p
  10.     D(B & "") = Ar
  11. Next
  12. End With


  13. With Sheets("工作表2")
  14. .[F7:O1000].ClearContents
  15.     For Each E In .Range(.[E7], .[E100].End(xlUp))
  16.       If D.EXISTS(E & "") Then
  17.       E.Offset(, 1).Resize(, 10) = D(E & "")
  18.       Else: E.Offset(, 1) = "查無此 PN"
  19.       End If
  20.     Next
  21. End With


  22. End Sub
複製代碼

TOP

回復 3# jesscc

若沒有宣告Option Base 1的話,則底下的Dim Ar(10)會包含Ar(0)、Ar(1)、Ar(2)、Ar(3)...、Ar(10)共有11個陣列元素。
若宣告Option Base 1的話,則Ar(10)陣列只包含Ar(1)、Ar(2)、Ar(3)...、Ar(10),10個陣列元素。
若Option Base 1 拿掉的話,整個資料傳回結果會向右偏一欄就是這個道理。

TOP

        靜思自在 : 要比誰更受誰.不要比誰更怕誰。
返回列表 上一主題