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

¤jµ§¸ê®Æ´«¦æ³B²z»P¼Æ¦r¤å¦r¤À¹j°ÝÃD

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


    ÁÂÁ½׾Â,ÁÂÁ«e½ú«ü¾É
«á¾ÇÂǦ¹©«¾Ç²ß«e½úªº¤è®×,¤è®×¾Ç²ß¤ß±oµù¸Ñ¦p¤U,½Ð«e½ú¦A«ü¾É

°õ¦æ«e:


°õ¦æµ²ªG:



Sub Test()
Dim A, B, T$, Brr(1 To 6000, 1 To 4), xD, N&, u, v
'¡ô«Å§iÅܼÆ
[F2:I6000].ClearContents
'¡ôµ²ªGÄæÀx¦s®æ ²M°£¤º®e
Set xD = CreateObject("Scripting.Dictionary")
'¡ô¥OxDÅܼƬO ¦r¨å
For Each A In Range([A2], [A65536].End(xlUp)).Value
'¡ô³]³v¶µ°j°é!¥OA¬OAÄæ¸ÌªºÀx¦s®æ­È
For Each B In Split(Replace(A, Chr(10), " "), " ")
'¡ô³]³v¶µ°j°é!¥OBÅܼƬO AÅܼƳQ¤À³Î¦¨¤@ºû°}¦Cªº¤@­Ó°}¦C­È
    For i = 1 To Len(B) + 1
    '¡ô³]¶¶°j°é
        If Not IsNumeric(Right("x" & B, i)) Then v = i - 1: Exit For
        '¡ô±q¦r¦êªº¥k©¹¥ª°¼§ä«D¼Æ¦rªº¦r¤¸¦ì¸mi,¥OvÅܼƬO¦r¤¸¦ì¸m-1
    Next
    If v = 0 Then GoTo 101
    '¡ô¦pªG«D¼Æ¦rªº¦r¤¸¬O¦r¦êªº³Ì«á¤@­Ó¦r!´N¸õ¨ì101¼Ð¥Ü¦ì¸mÄ~Äò°õ¦æ
    T = Right(B, v): If xD(T) > 0 Then GoTo 101
    '¡ô¥OTÅܼƬOBÅܼƥk°¼ªº³sÄò¼Æ¦r,
    '¡ô¦pªGTÅܼƬdxD¦r¨å±oitem­È ¤j©ó0 !
    '´N¸õ¨ì101¼Ð¥Ü¦ì¸mÄ~Äò°õ¦æ(Âo¼Æ¦rªº­«½Æ)

    u = 4: If Left(T, 1) = "1" Then u = 2: T = [G1] & T
    '¡ô¥OuÅܼƬO 4(¹w³]),
    '¦pªGTÅܼƲÄ1­Ó¦r¬O1,¥OuÅܼƬO 2,¥B¥OTÅܼƫe­±²K¥[[G1]Àx¦s®æ­È

    N = N + 1: Brr(N, 1) = Left(B, Len(B) - v): Brr(N, u) = T
    '¡ô¥ONÅܼƲ֥[ 1,¥O¥ª°¼¤å¦r¼g¤JBrr°}¦C²Ä1Äæ,
    '¥O¥k°¼¤å¦r¨ÌN/uÅܼƼg¤JBrr°}¦C

    xD(T) = 1: v = 0
    '¡ô¥O¥HTÅܼƷíkey,item¬O1,¯Ç¤JxD¦r¨å¸Ì(µ¹«á­±°j°éÂo¼Æ¦rªº­«½Æ)
101: Next
Next
If N > 0 Then [F2].Resize(N, 4) = Brr
'¡ô¦pªG¦³¸ê®Æ!´N¥OBrr°}¦C­È±a¤J±q[F2]¶}©lªººë½T½d³òÀx¦s®æ
End Sub
¥Î¦æ°Ê¸Ë¸mÂsÄý½×¾Â¾Ç²ß«Ü¤è«K,ÁÂÁ½׾¸gÀç¹Î¶¤
½Ð¤j®a¤@°_¤W½×¾Â¨Ó¥æ¬y

TOP

        ÀR«ä¦Û¦b : ¦a¤WºØ¤Fµæ¡A´N¤£©öªø¯ó¡F¤ß¤¤¦³µ½¡A´N¤£©ö¥Í´c¡C
ªð¦^¦Cªí ¤W¤@¥DÃD