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

[µo°Ý] VBA­pºâ½c¤l¸¹½X

¥»©«³Ì«á¥Ñ Andy2483 ©ó 2023-3-16 16:23 ½s¿è

¦^´_ 10# john2006168


    ÁÂÁ«e½úµoªí¦¹¥DÃD»P½d¨Ò
«á¾ÇÂǦ¹©«½m²ß°}¦C»P¦r¨å,½Ð«e½ú°Ñ¦Ò,½Ð¦U¦ì«e½ú«ü±Ð

°õ¦æ«e:


°õ¦æµ²ªG:


Option Explicit
Sub Test4()
Dim Brr, Y, N&, i&, xR As Range, T$
'¡ô«Å§iÅܼÆ:(Brr,Y)¬O³q¥Î«¬ÅܼÆ,(N,i)¬Oªø¾ã¼ÆÅܼÆ,
'xR¬OÀx¦s®æÅܼÆ,T¬O¦r¦êÅܼÆ

Set Y = CreateObject("Scripting.Dictionary")
'¡ô¥OY³o³q¥Î«¬ÅܼƬO ¦r¨å
Set xR = Range([E1], [A65536].End(3))
'¡ô¥OxR³oÀx¦s®æÅܼƬO [E1]¨ìAÄæ³Ì«á¦³¤º®eÀx¦s®æ
Brr = xR
'¡ô¥OBrr³o³q¥Î«¬ÅܼƬO¤Gºû°}¦C,¥HxRÅܼƭȱa¤J
For i = 2 To UBound(Brr)
'¡ô³]¶¶°j°é!i±q2¨ì BrrÁa¦V³Ì¤j¯Á¤Þ¦C¸¹
   T = Brr(i, 5): N = Y(T) + 1
   '¡ô¥O³o¦r¦êÅܼƬO i°j°é¦C²Ä5ÄæBrr°}¦C­È,
   '¥ON³oªø¾ã¼ÆÅܼƬO TÅܼƬdY¦r¨å¦^¶Çªºitem­È+1

   Y(T) = Y(T) + Brr(i, 3)
   '¡ô¥OY¦r¨å¤¤¥HTÅܼƬ°keyªºitem­È,²Ö¥[i°j°é¦C²Ä3ÄæBrr°}¦C­È
   Brr(i, 4) = T & N & "-" & T & Y(T)
   '¡ô¥Oi°j°é¦C²Ä4ÄæBrr°}¦C­È¬O TÅܼƳs±µNÅܼÆ,
   '¦A³s±µ"-",Äò³s±µTÅܼÆ,³Ì«á³s±µ(TÅܼƦbY¦r¨åªºitem­È),
   '³o¬O¦r¦ê

Next
xR = Brr
'¡ô¥OxRÅܼÆ(­ìÀx¦s®æ)­È¬O Brr°}¦C­È
Set Y = Nothing: Erase Brr
'¡ô¥OÄÀ©ñÅܼÆ
End Sub
¥Î¦æ°Ê¸Ë¸mÂsÄý½×¾Â¾Ç²ß«Ü¤è«K,ÁÂÁ½׾¸gÀç¹Î¶¤
½Ð¤j®a¤@°_¤W½×¾Â¨Ó¥æ¬y

TOP

        ÀR«ä¦Û¦b : ¤@¥y·Å·xªº¸Ü¡A´N¹³©¹§O¤H¨­¤WÅx­»¤ô¡A¦Û¤v·|ªg¨ì¨â¤Tºw¡C
ªð¦^¦Cªí ¤W¤@¥DÃD