返回列表 上一主題 發帖

[發問] 如何比對出A/B欄重複及欠缺之數值

回復 11# loyyee
並非資料筆數問題
是如果沒有和條件的資料就會造成Resize出錯
  1. Sub Ex()
  2. Dim Ay(), Ay1()
  3. Set d = CreateObject("Scripting.dictionary")
  4. Set d1 = CreateObject("Scripting.dictionary")
  5. [E6].CurrentRegion.Offset(1, 0) = ""
  6. [I1].CurrentRegion.Offset(1, 0) = ""

  7. ar1 = [A1].CurrentRegion.Columns(1).Value
  8. ar2 = [A1].CurrentRegion.Columns(2).Value
  9. ar = Array(ar1, ar2)
  10. For i = 0 To 1
  11. For Each a In ar(i)
  12.    Select Case i
  13.    Case 0
  14.    If a <> "" Then d(a) = d(a) + 1
  15.    Case 1
  16.    If a <> "" Then d1(a) = d1(a) + 1
  17.    End Select
  18. Next
  19. Next
  20. dic = Array(d, d1)
  21. For i = 0 To 1
  22. For Each ky In dic(i).keys
  23. p = IIf(i = 0, 1, 0)
  24.    If dic(p).exists(ky) = False Then
  25.    ReDim Preserve Ay(s)
  26.    Ay(s) = ky
  27.    s = s + 1
  28.    End If
  29.    If dic(i)(ky) > 1 Then
  30.    ReDim Preserve Ay1(k)
  31.    Ay1(k) = ky
  32.    k = k + 1
  33.    End If
  34. Next
  35. If s > 0 Then Cells(2, 9 + i).Resize(s, 1) = Application.Transpose(Ay): s = 0: Erase Ay
  36. If k > 0 Then Cells(7, 5 + i).Resize(k, 1) = Application.Transpose(Ay1): k = 0: Erase Ay1
  37. Next
  38. End Sub
複製代碼
學海無涯_不恥下問

TOP

        靜思自在 : 能幹不幹,不如苦幹實幹。
返回列表 上一主題