分享

Excel VBA 字典/数组 示例

 hdzgx 2019-11-10
  1. A 将数组作为字典的Value
  2. Private Sub CommandButton3_Click()
  3. Dim arr, arr1, i&, d As Object
  4. arr = Sheets(3).[a1].CurrentRegion
  5. arr1 = [a1].CurrentRegion
  6. Set d = CreateObject("scripting.dictionary")
  7. For i = 2 To UBound(arr)
  8. d(arr(i, 1)) = ""
  9. Next i
  10. For i = 2 To UBound(arr1)
  11. If d.exists(arr1(i, 1)) Then d(arr1(i, 1)) = Array("", arr1(i, 3), "", arr1(i, 5), arr1(i, 6))
  12. Next i
  13. Sheets(3).[b2].Resize(d.Count, UBound(arr, 2) - 1) = Application.Transpose(Application.Transpose(d.items))
  14. End Sub
  15. B法
  16. Private Sub CommandButton1_Click()
  17. arr = [a1].CurrentRegion
  18. Set d = CreateObject("scripting.dictionary")
  19. For i = 2 To UBound(arr)
  20. d(arr(i, 1)) = i
  21. Next i
  22. brr = Sheet3.Range("a1").CurrentRegion
  23. For i = 2 To UBound(brr)
  24. n = d(brr(i, 1))
  25. brr(i, 3) = arr(n, 3)
  26. brr(i, 5) = arr(n, 5)
  27. brr(i, 6) = arr(n, 6)
  28. Next
  29. Sheet3.Range("a1").CurrentRegion = brr
  30. End Sub
  31. c = Array(3, 5, 6)
  32. For i = 2 To UBound(brr)
  33. n = d(brr(i, 1))
  34. For j = 0 To 2
  35. brr(i, c(j)) = arr(n, c(j))
  36. Next
  37. Next
  38. 原贴
  39. http://club./thread-1057654-1-1.html
  40. http://club./thread-698873-1-1.html

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多