- ©«¤l
- 1447
- ¥DÃD
- 40
- ºëµØ
- 0
- ¿n¤À
- 1471
- ÂI¦W
- 0
- §@·~¨t²Î
- Windows 7
- ³nÅ骩¥»
- Excel 2010 & 2016
- ¾\ŪÅv
- 50
- ©Ê§O
- ¨k
- ¨Ó¦Û
- ¥xÆW
- µù¥U®É¶¡
- 2020-7-15
- ³Ì«áµn¿ý
- 2025-2-11
|
ÁÂÁ½׾Â,ÁÂÁ¦U¦ì«e½ú
«á¾ÇÂǦ¹©«½m²ßVBA°}¦C,¾Ç²ß¤è®×¦p¤U,½Ð¦U¦ì«e½ú«ü±Ð
°õ¦æ«e:
°õ¦æµ²ªG:
Option Explicit
Sub TEST()
Dim Brr, Crr, V, Z$, Q, i&, T$
'¡ô«Å§iÅܼÆ
Brr = Range([E6], [E65536].End(3))
'¡ô¥OBrrÅܼƬO ¤Gºû°}¦C,¥HEÄæÀx¦s®æȱa¤J°}¦C¤¤
Z = "Invoice [#] ###### #*/#*/####"
'¡ô¥OZÅܼƬO¦r¦ê
ReDim Crr(1 To UBound(Brr) - 1, 1 To 4)
'¡ô¥OCrrÅܼƬO ¤GºûªÅ°}¦C,Áa¦V½d³ò1~Brr°}¦CÁa¦V³Ì¤j¯Á¤Þ¦C¸¹-1,¾î¦V½d³ò1~4
For i = 1 To UBound(Brr)
'¡ô³]¶¶°j°é!
T = Brr(i, 1)
'¡ô¥OTÅܼƬO °j°éBrr°}¦CÈ(¦r¦ê)
If T Like Z Then V = Split(T, " "): GoTo i01
'¡ô¦pªG¥H Like ¹Bºâ¤l §P§O(TÅܼƻPZÅܼÆ)¦^¶Ç True?
'¬O´N¥OV¬O(¥HªÅ¥Õ¦r¤¸¤À³ÎTÅܼƪº¤@ºû°}¦C),¥Oµ{§Ç¸õ¨ìi01¦ì¸mÄ~Äò°õ¦æ
If Val(T) = 0 Then GoTo i01 Else T = T & " "
'¡ô¦pªGTÅܼÆÂà¼ÆÈ«á¬O 0?¬O´N¥Oµ{§Ç¸õ¨ìi01¦ì¸mÄ~Äò°õ¦æ,
'§_«h´N¥OTÅܼƳs±µ" "²Õ¦¨¬°·s¦r¦ê
Crr(i - 1, 1) = V(2): Crr(i - 1, 2) = V(4)
'¡ô¥OCrr°}¦C²Ä1Äæ¼g¤J(2¯Á¤Þ¸¹V°}¦CÈ),
'¥OCrr°}¦C²Ä2Äæ¼g¤J(4¯Á¤Þ¸¹V°}¦CÈ)
Q = InStr(T, " ")
'¡ô¥OQÅܼƬO§P©wTÅܼƲÄ1Ӫťզr¤¸ªº¦ì¸m
Crr(i - 1, 3) = Left(T, Q - 1)
'¡ô¥OCrr°}¦C²Ä3Äæ¼g¤JTÅܼƪº¥ª°¼(Q - 1)Ó¦r¤¸
Crr(i - 1, 4) = Trim(Mid(T, Q + 1))
'¡ô¥OCrr°}¦C²Ä4Äæ¼g¤JTÅܼƱq(Q + 1)Ó¦r¥H«áªº¦r¦ê
i01: Next
[A7].Resize(UBound(Crr), 4) = Crr
'¡ô¥O±q[A7]¶}©lÂX®iªº½d³òÀx¦s®æȬOCrr°}¦CÈ
Erase Brr, Crr, V
'¡ô¥OÄÀ©ñÅܼÆ
End Sub |
|