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

VBA´M§ä­«½Æ

Sub test_01()
Dim Arr, xD, i&, T$, U&, TM
TM = Timer
Set xD = CreateObject("Scripting.Dictionary")
Arr = Range([C2], Cells(Rows.Count, 3).End(3))
For i = 1 To UBound(Arr)
    T = Arr(i, 1):  U = xD(T):  Arr(i, 1) = ""
    If U > 0 Then Arr(U, 1) = "­«ÂÐ": xD(T) = -1: U = -1
    If U < 0 Then Arr(i, 1) = "­«ÂÐ"
    If U = 0 Then xD(T) = i
Next i
[B2].Resize(UBound(Arr)) = Arr
MsgBox Timer - TM
End Sub

¤­¸U¦hµ§, ¬ù¤@¬í¤º¥i§¹¦¨~~

TOP

¦^´_ 4# a5007185


¦pªG¥ÎVBA, «D¤£±o¤w¤~¥h¥Î¨ç¼Æ, ¾¨¶qÁקK,
¤@¯ëªº¤½¦¡¸Ñ, COUNTIF¤]¬O¯S§OºC, ¸ê®Æ¤@¦h, ·Ç¥dÀÉ!

TOP

Sub test_02()
Dim Arr, Brr, xD, i&, TM
TM = Timer
Set xD = CreateObject("Scripting.Dictionary")
Arr = Range([C2], Cells(Rows.Count, 3).End(3))
ReDim Brr(1 To UBound(Arr), 0)
For i = 1 To UBound(Arr)
    xD(Arr(i, 1) & "") = xD(Arr(i, 1) & "") + 1
Next i
For i = 1 To UBound(Arr)
    If xD(Arr(i, 1) & "") > 1 Then Brr(i, 0) = "­«ÂÐ"
Next
[B2].Resize(UBound(Arr)) = Brr
MsgBox Timer - TM
End Sub

³o¬O°ò¥»®M¸ô, ¥Î¤F¨â­Ó°j°é, ºC¤@¨Ç¨Ç~~
xD(Arr(i, 1) & "")  ¥[ "" ¬O¬°¨¾¤î[¯Â¼Æ¦r]¦b¼Æ­È®æ¦¡»P¤å¦r®æ¦¡¤£¦P¦Ó²£¥Í®t²§!

TOP

¥»©«³Ì«á¥Ñ ­ã´£³¡ªL ©ó 2018-9-28 10:04 ½s¿è

¦^´_ 10# ¤d·u´M

U=xD(T) ¥ý¨ú¥X¦r¨åªºITEM­È, ­YT­ÈÁÙ¥¼¥á¶i¦r¨å, U ­È¬°0(©Î"")

U=0  ªí¥Ü©|¥¼±½¹LªºKEY, ¥ýµ¹­È i «O¯d«á¥Î (¬Û·í¤_¦C¸¹)
U>0  ªí¥Ü¬O²Ä2¦¸±½¨ìªº, ¨äITEM­È¬O¤W¤@¦¸«O¯dªº"¦C¸¹", ¶¶¶Õ±N¤W¤@¦¸ªº¦ì¸m¼Ð¥Ü"­«ÂÐ", ¦A±N ITEM §ï¦¨ -1
U<0  ªí¥Ü¤w±½¹L2¦¸¥H¤W, ª½±µ¼Ð¥Ü"­«ÂÐ"

TOP

¦^´_ 14# Qin

¥u¼Ð¥Ü¦³­«ÂЪº[³Ì«á¤@­Ó]

Sub test_03()
Dim Arr, xD, i&, T$, U&, TM
TM = Timer
Set xD = CreateObject("Scripting.Dictionary")
Arr = Range([C2], Cells(Rows.Count, 3).End(3))
For i = UBound(Arr) To 1 Step -1
    T = Arr(i, 1):  U = xD(T):  Arr(i, 1) = ""
    If U > 0 Then Arr(U, 1) = "Rept": xD(T) = -1
    If U = 0 Then xD(T) = i
Next i
[B2].Resize(UBound(Arr)) = Arr
MsgBox Timer - TM
End Sub

TOP

        ÀR«ä¦Û¦b : ¯à¥I¥X·R¤ß´N¬OºÖ¡A¯à®ø°£·Ð´o´N¬O¼z¡C
ªð¦^¦Cªí ¤W¤@¥DÃD