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

[µo°Ý] §Q¥ÎEXCEL¥¨¶°¸ê®Æ³B²z

¥»©«³Ì«á¥Ñ Hsieh ©ó 2010-5-9 21:50 ½s¿è

§A¦Û¤v¨SÀ|¸Õ¥h§ï§ï¬Ý¶Ü?
¤F¸Ñ¾ãÅé¬yµ{»yªkªº·N¸q«á
­n­×§ï¨Ã¤£§xÃø
§AÀ³¸Ó§â§A­×§ï¹Lµ{¤¤µLªk§JªAªº¦a¤è®³¥X¨Ó°Q½×
¦Ó«D­n§O¤Hª½±µ­×¦nµ¹§A
Sub nn()
Dim d As Object, d1 As Object, a As Range, mystr As String
Set d = CreateObject("Scripting.Dictionary")
Set d1 = CreateObject("Scripting.Dictionary")
t = Timer
With Sheet1
For Each a In .Range(.[A2], .[A65536].End(xlUp))
mystr = Join(Application.Transpose(Application.Transpose(a.Offset(, 1).Resize(, 5))), "")
   If IsEmpty(d(mystr)) Then
      Ar = a.Offset(, 1).Resize(, 5).Value
      d(mystr) = a.Offset(, 1).Resize(, 5).Value
      d1(mystr) = 1
      Else
      Ar = d(mystr)
      Ar(1, 5) = Ar(1, 5) + Val(a.Offset(, 5))
      d1(mystr) = d1(mystr) + 1
    End If
Next
End With
With Sheet2
   .[A2:F65536] = ""
   .[A2].Resize(d.Count, 5) = Application.Transpose(Application.Transpose(d.items))
   .[F2].Resize(d.Count, 1) = Application.Transpose(d1.items)
End With
Application.ScreenUpdating = True
MsgBox Timer - t
End Sub
¾Ç®üµL²P_¤£®¢¤U°Ý

TOP

¦^´_ 5# luhpro


    ³oÃä­ì·Q­n®M¥Î Join ¤èªk¦ý·f°t Cells ¤@ª½³£»¡ "°õ¦æ¿ù»~", ©Ò¥H¥u¯à¼È®É¥ý³o¼Ë¥ÎÅo.
³o¬O¦]¬°·í§A«ü©w¤@¦Cªº½d³ò°µ°}¦C®É
¨Æ¹ê¤Wexcel§â¦¹½d³ò¬Ý¦¨2ºû°}¦C
¦Ójoin¨ç¼Æªº°Ñ¼Æ¥u¯à¤¹³\¤@ºû°}¦C
¾Ç®üµL²P_¤£®¢¤U°Ý

TOP

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