ªð¦^¦Cªí ¤W¤@¥DÃD µo©«

[µo°Ý] ½Ð°ÝVBA Excel °}¦Cªº°ÝÃD?

  1. Sub ex()
  2.     Set d = CreateObject("Scripting.Dictionary")
  3.     ar = Array(Array("AA", "yes", "Cr", 111, 222), _
  4.                Array("BB", "No", "Dr", 333, 444), _
  5.                Array("CC", "yes", "Bl", 111, 222), _
  6.                Array("AA", "yes", "Cr", 222, 333), _
  7.                Array("CC", "yes", "Bl", 333, 555), _
  8.                Array("CC", "yes", "Bl", 222, 111), _
  9.                Array("BB", "No", "Dr", 444, 222))

  10.     For i = LBound(ar) To UBound(ar)
  11.         If Not d.exists(ar(i)(0)) Then
  12.             d(ar(i)(0)) = ar(i)
  13.         Else
  14.             a = d(ar(i)(0))
  15.             a(3) = a(3) + ar(i)(3)
  16.             a(4) = a(4) + ar(i)(4)
  17.             d(ar(i)(0)) = a
  18.         End If
  19.     Next
  20.     [a1].Resize(7, 5) = Application.Transpose(Application.Transpose(ar))
  21.     [a9].Resize(d.Count, 5) = Application.Transpose(Application.Transpose(d.Items))
  22. End Sub
½Æ»s¥N½X
{...} ªí¥Ü»Ý­n¥Î CTRL+SHIFT+ENTER ¤TÁä¿é¤J¤½¦¡

TOP

¦^´_ 4# pipi1968

§A¥Ø«e°}¦C«Å§i¤è¦¡¥i¥H°Ñ¦Ò Sub ex2()
   


Sub ex()
    Set d = CreateObject("Scripting.Dictionary")
    ar = Array(Array("AA", "yes", "Cr", 111, 222), _
               Array("BB", "No", "Dr", 333, 444), _
               Array("CC", "yes", "Bl", 111, 222), _
               Array("AA", "yes", "Cr", 222, 333), _
               Array("CC", "yes", "Bl", 333, 555), _
               Array("CC", "yes", "Bl", 222, 111), _
               Array("BB", "No", "Dr", 444, 222))

    For i = LBound(ar) To UBound(ar)
        If Not d.exists(ar(i)(0)) Then
            d(ar(i)(0)) = ar(i)
        Else
            a = d(ar(i)(0))
            a(3) = a(3) + ar(i)(3)
            a(4) = a(4) + ar(i)(4)
            d(ar(i)(0)) = a
        End If
    Next
    [a1].Resize(7, 5) = Application.Transpose(Application.Transpose(ar))
    [a9].Resize(d.Count, 5) = Application.Transpose(Application.Transpose(d.Items))
End Sub



Sub ex2()
    Set d = CreateObject("Scripting.Dictionary")
    ar = [A1:E7]

    For i = LBound(ar) To UBound(ar)
        If Not d.exists(ar(i, 1)) Then
            d(ar(i, 1)) = Array(ar(i, 1), ar(i, 2), ar(i, 3), ar(i, 4), ar(i, 5))
        Else
            a = d(ar(i, 1))
            a(3) = a(3) + ar(i, 4)
            a(4) = a(4) + ar(i, 5)
            d(ar(i, 1)) = a
        End If
    Next
    '    [a1].Resize(7, 5) = Application.Transpose(Application.Transpose(ar))
    [a13].Resize(d.Count, 5) = Application.Transpose(Application.Transpose(d.Items))
End Sub
{...} ªí¥Ü»Ý­n¥Î CTRL+SHIFT+ENTER ¤TÁä¿é¤J¤½¦¡

TOP

        ÀR«ä¦Û¦b : °µ¦n¨Æ¤£¯à¤Ö§Ú¤@¤H¡A°µÃa¨Æ¤£¯à¦h§Ú¤@¤H¡C
ªð¦^¦Cªí ¤W¤@¥DÃD