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

[µo°Ý] ¦p¦ó¥h¹ïÀ³¥XÁ`ªí¤¤¤¬¬Û´À¥Nªº«~¸¹(ªþ¥ó)

[ª©¥DºÞ²z¯d¨¥]
  • ML089(2016-9-13 08:59): ¨S¦³®É¶¡¯àÀ°±o¤W¦£¡AÁÙ¦n¦³ ­ã¤j ¤Î®É¥X²{¡C

¦^´_ 7# ML089

·PÁÂMLª©¤jªºÀ°§U¡A¤p§Ì­ì¥»¹Á¸Õ¥Îindex»Pmatch¨ç¼Æ¨D¸Ñ¡A¦ýê©óµ{«×¤£¨Î¡A¤]¨S¿ìªk±a¥X§¹¾ãªº´À¥NÃö«Y¡AÁ`¬Oµo²{¿òº|ªº¦a¤è

¤U­±­ã´£³¡ªLª©¤jªºVBA¤wÀ°§U§Ú©Ò»Ý­nªºµ²ªG¡A¤]¬Û·í·PÁÂMLª©¤jªºÀ°¦£¡A·PÁÂ!!

À³¸Ó¬O«Ü²³æªº°ÝÃD³Q§ÚÁ¿±o³o»ò½ÆÂø¡A«á¨Ó·Q·Q¨ä¹ê°ÝÃD¥i¥H²³æ¤Æ¦p¤U

TOP

¥»©«³Ì«á¥Ñ ­ã´£³¡ªL ©ó 2016-9-13 11:49 ½s¿è

¦^´_ 10# abc9gad2016


ÀË´ú¤@¤U¸ê®Æ¡Aµo²{¡e´À¥Nªí¡fC721 ªº DN6818800 «á­±§t¦³¤@­Ó¤£¥i¨£¦r¤¸¤ÎªÅ¥Õ¦r¤¸¡A
³o·|³y¦¨¸ê®Æ¤ñ¹ï¤Wªº¿ù»~¡A¶·ª`·N¡ã¡ã

¥H¤Uµ{¦¡½X¥i¥H¸Õ¸Õ¬Ý¡A²M°£¢Ð¢ÑÄæªÅ¥Õ¦r¤¸¤Î¤£¥i¨£¦r¤¸¡]¥u°w¹ïAscW(160)¡^
Sub UURR()
[B:C].Replace ChrW(160), "", Lookat:=xlPart
[B:C].Replace " ", "", Lookat:=xlPart
End Sub

¥t¥~¡A´À¥N¸s²Õ­Y¤Ó¦h«~¶µ¡A³y¦¨¦r¦ê¤Óªø¡A¥i¯à¤]·|¦³¤ñ¹ï¥X¿ùªº°ÝÃD¡A
§Ú¨S¦³¥h¬ã¨s¦r¨åÀɪºkey¤Îitem³Ì¦hªº¦r¤¸­­¨î¡]¥Ø«e´ú¹L¢°¢¯¢¯¢¯­Ó¦r¤¸ÁÙ¥i¥H¡^¡I¡I¡I

ª©¤W¨Ï¥ÎEXCELªº¤H¡A¤j³¡¥÷¬O¥Î¨ì­þ¾Ç¨ì­þ¡A¦³°ÝÃD´N¬O¶R¨Ç®Ñ¡DGOOGLE¡A©ÎVBA¤º«Ø»¡©úÀɧä§÷®Æ¡A
´X¥G³£¬O¾a®É¶¡²Ö¿n¸gÅ窺¡A³o«æ¤£¨Ó¡ã¡ã

TOP

¦^´_ 9# ­ã´£³¡ªL


    ÁÂÁ«e½ú
«á¾ÇÂǦ¹½d¨Ò¾Ç²ß°}¦C»P¦r¨å,«Ü¦hÁ٬ݤ£À´,¼È¾Ç²ß¤ß±o¦p¤U,½Ð«e½ú¦A«ü¾É

°õ¦æ«e:


°õ¦æµ²ªG:



Sub Get_Group()
Dim Arr, Brr, Q, xD1, xD2, A$, b$, T$, TT$, S$, i&, N&, R&
'¡ô«Å§iÅܼÆ:(Arr,Brr,Q,xD1,xD2)¬O³q¥Î«¬ÅܼÆ,(A,b,T,TT,S)¬O¦r¦êÅܼÆ,
'(i,N,R)¬Oªø¾ã¼ÆÅܼÆ

Arr = Range([´À¥Nªí!B2], [´À¥Nªí!C1].Cells(Rows.Count, 1).End(xlUp))
'¡ô¥OArr³o³q¥Î«¬ÅܼƬO ¤Gºû°}¦C,¥H´À¥Nªí[B2]¨ì CÄæ³Ì«á¦³¤º®eÀx¦s®æ­È±a¤J
Set xD1 = CreateObject("Scripting.Dictionary")
'¡ô¥OxD1³o³q¥Î«¬ÅܼƬO ¦r¨å
For i = 1 To UBound(Arr)
'¡ô³]¶¶°j°é!i±q1¨ì Arr°}¦CÁa¦V³Ì¤j¯Á¤Þ¦C¸¹
    A = Arr(i, 1): b = Arr(i, 2): TT = ""
    '¡ô¥OA³o¦r¦êÅܼƬO i°j°é¦C²Ä1ÄæArr°}¦C­È,
    '¥Ob³o¦r¦êÅܼƬO i°j°é¦C²Ä2ÄæArr°}¦C­È,¥OTT³o¦r¦êÅܼƬO ªÅ¦r¤¸

    If A <> "" And b <> "" Then
    '¡ô¦pªGAÅܼƤ£¬O ªÅ¦r¤¸,¥BbÅܼƤ]¤£¬O ªÅ¦r¤¸??
       T = xD1(A) & " " & xD1(b) & " " & A & " " & b
       '¡ô¥OTÅܼƬO AÅܼƷíkey¬dxD1¦r¨åªºitem­È,³s±µªÅ¥Õ¦r¤¸,
       '³s±µbÅܼƷíkey¬dxD1¦r¨åªºitem­È,³s±µªÅ¥Õ¦r¤¸,³s±µAÅܼÆ,
       '³s±µªÅ¥Õ¦r¤¸,³Ì«á³s±µbÅܼƩҲզ¨ªº·s¦r¦ê

       For Each Q In Split(T, " ")
       '¡ô³]³v¶µ°j°é!¥OQ³o³q¥Î«¬ÅܼƬO ¥HªÅ¥Õ¦r¤¸¤Á³ÎTÅܼƪº¤@ºû°}¦C,¨ä¤¤¤@¤l
           If InStr(TT, Q) = 0 Then TT = Trim(TT & " " & Q)
           '¡ô¦pªGTTÅܼƦr¦ê¸Ì¨S¦³¥]§tQÅܼƦr¦ê!´N¥OTTÅܼƬO
           '(¦Û¨­³s±µ ªÅ¦r¤¸,¦A³s±µ QÅܼÆ)«á¥hÀY§ÀªÅ¥Õ¦r¤¸©Ò²Õ¦¨ªº·s¦r¦ê

       Next
       For Each Q In Split(TT, " ")
       '¡ô³]³v¶µ°j°é!¥OQ³o³q¥Î«¬ÅܼƬO ¥HªÅ¥Õ¦r¤¸¤Á³ÎTTÅܼƪº¤@ºû°}¦C,¨ä¤¤¤@¤l
           If Q <> "" Then xD1(Q) = TT
           '¡ô¦pªGQÅܼƤ£¬O ªÅ¦r¤¸!´N¥OQÅܼƷíkey,item¬O TTÅܼƯǤJxD1¦r¨å¤¤
       Next
    End If
Next i
'¡ô§â©Ò¦³¦³¦å½tÃö«Yªº¤H³£µo¤@±i¤á¤f¦Wï
ReDim Brr(1 To UBound(Arr), 0)
'¡ô«Å§iBrr³o³q¥Î«¬ÅܼƬO¤Gºû°}¦C,Áa¦V½d³ò±q1¨ì ArrÁa¦V³Ì¤j¯Á¤Þ¦C¸¹,
'¾î¦V½d³ò±q0¨ì0

For i = 1 To UBound(Arr)
'¡ô³]¶¶°j°é!i±q1¨ì ArrÁa¦V³Ì¤j¯Á¤Þ¦C¸¹
    Brr(i, 0) = xD1(Arr(i, 1))
    '¡ô¥Oi°j°é¦C0¯Á¤Þ¸¹Äæ°}¦C­È¬O ¥Hi°j°é¦C²Ä1ÄæArr°}¦C­È¬dxD1¦r¨å±oitem­È
Next i
[´À¥Nªí!D2].Resize(UBound(Arr)) = Brr
'¡ô¥O´À¥Nªí[D2]¦V¤UÂX®i Arr°}¦CÁa¦V³Ì¤j¯Á¤Þ¸¹¦C¼Æ,
'³o½d³òÀx¦s®æ­È¥HBrr°}¦C­È±a¤J
'------------------------------------------------------


Arr = Range([B2], Cells(Rows.Count, 2).End(xlUp))
'¡ô¥OArrÅܼƴ«¸Ë²{¥Î¤u§@ªí[B2]¨ì BÄæ³Ì«á¦³¤º®eÀx¦s®æ­È
Set xD2 = CreateObject("Scripting.Dictionary")
'¡ô¥OxD2³o³q¥Î«¬ÅܼƬO ¥t¤@­Ó¦r¨å
For i = 1 To UBound(Arr)
'¡ô³]¶¶°j°é!i±q1¨ì ArrÁa¦V³Ì¤j¯Á¤Þ¦C¸¹
    T = xD1(Arr(i, 1))
    '¡ô¥OTÅܼƬO¥Hi°j°é¦C²Ä1ÄæArr°}¦C­È¬d xD1¦r¨å±oitem­È
    If T <> "" Then
    '¡ô¦pªGTÅܼƤ£¬O ªÅ¦r¤¸?
       S = xD2(T):  Q = S
       '¡ô¥OS³o¦r¦êÅܼƬO ¥HTÅܼƬd xD2¦r¨å±oitem­È
       '¥OQÅܼƬO SÅܼƭÈ

       If S = "A" Then N = N + 1: Q = N
       '¡ô¦pªGSÅܼƬO "A"¦r¤¸!´N¥ONÅܼƲ֥[1,¥OQÅܼƬO NÅܼƭÈ
       If S = "" Then Q = "A"
       '¡ô¦pªGSÅܼƬOªÅ¦r¤¸!´N¥OQÅܼƬO "A"¦r¤¸
       xD2(T) = Q
       '¡ô¥O¥HTÅܼƷíkey,item¬OQÅܼÆ,¯Ç¤JxD2¦r¨å
    End If
Next

ReDim Brr(1 To UBound(Arr), 1)
'¡ô«Å§iBrr³o³q¥Î«¬ÅܼƬO¤Gºû°}¦C,Áa¦V½d³ò±q1¨ì ArrÁa¦V³Ì¤j¯Á¤Þ¦C¸¹,
'¾î¦V½d³ò±q0¨ì1

For i = 1 To UBound(Arr)
'¡ô³]¶¶°j°é!i±q1¨ì ArrÁa¦V³Ì¤j¯Á¤Þ¦C¸¹
    T = xD1(Arr(i, 1))
    '¡ô¥OTÅܼƬO i°j°é¦C²Ä1ÄæArr°}¦C­È¬d xD1¦r¨å±oitem­È
    Q = Val(xD2(T))
    '¡ô¥OQÅܼƬO ¥HTÅܼƬd xD2¦r¨å±oitem­ÈÂন¼Æ­È
    If Q > 0 Then Brr(i, 0) = Q: Brr(i, 1) = T
    '¡ô¦pªGQÅܼƤj©ó 0!´N¥Oi°j°é¦C0¯Á¤Þ¸¹ÄæBrr°}¦C­È¬O QÅܼÆ,
    '¥Oi°j°é¦C²Ä1ÄæBrr°}¦C­È¬O TÅܼƭÈ

Next

[D2:E2].Resize(UBound(Arr)) = Brr
'¡ô¥O[D2:E2]¦V¤UÂX®iArr°}¦CÁa¦V¯Á¤Þ¦C¸¹¼Æ½d³òÀx¦s®æ­È,¥HBrr°}¦C­È±a¤J
End Sub
¥Î¦æ°Ê¸Ë¸mÂsÄý½×¾Â¾Ç²ß«Ü¤è«K,ÁÂÁ½׾¸gÀç¹Î¶¤
½Ð¤j®a¤@°_¤W½×¾Â¨Ó¥æ¬y

TOP

        ÀR«ä¦Û¦b : ¤Hªº²´·úªø¦b«e­±¡A¥u¬Ý¨ì§O¤Hªº¯ÊÂI¡Aµ·²@¬Ý¤£¨ì¦Û¤vªº¯ÊÂI¡C
ªð¦^¦Cªí ¤W¤@¥DÃD