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

[µo°Ý] ¥¨¶°°õ¦æ·U¨Ó·UºC?

¦^´_ 1# adam2010

¢°¡D¿ý»s½X¥»¨Ó°õ¦æ´NºC¡A¤×¨ä§t¦³¤Ó¦hªº Select¡A¶·¾ã²z¬°§ó¦³®Äªº¤è¦¡¡A
¡@¡@¤£¦P»Ý¨Dªºµ{¦¡¡AÀ³¤À§O¥H sub «Ø¥ß³æ¿Wµ{§Ç¡A­n¤Þ¥Î®É call ¤@¤U§Y¥i¡A
¡@¡@¹³ Sheets("WIP") ³¡¥÷¡A¹ê¥i¿W¥ß¦¨³æ¤@µ{§Ç¡I
¡@¡@¦ý¦]¤£¤F¸Ñ³B²z»Ý¨D¬yµ{¡A¥B³¡¥÷»yªk¦boffice 2000µLªk¨Ï¥Î¡A©Ò¥HµLªkÀ°¦£¾ã²z¡I
¢±¡D¶È°w¹ï¡e¥æ´Á¡f¤u§@ªí´£¨Ñ­Ó¤H¤£¥¿³Wªº¼gªk¡A¥i³æ¿W´ú¸Õ¨ä°õ¦æ³t«×¡A
¡@¡@¥t°õ¦æµ²ªG»P­ìÀɵ{¦¡ªºµ²ªG¦³³¡¥÷¤£¬Û¦P¡]¢ÚÄæ¼Ð¥Ü¬õ¦rªÌ¡^¡A½ÐÀˬd¤@¤U¡I
¢²¡D¥t´£¨Ñ¬Û¦P¸ê®Æ°t©³¦âµ{¦¡¡Aµøı¤W¸û©ö¤À¿ë¦U½s¸¹ªº°_¨´°Ï¶ô¡I
  1. Sub ¥æ´Á()
  2. Dim R&, C&, Arr, Brr, DateRow, xD, i&, j&, SS&, S&, T$, M
  3. R = [¥X³f¤é!A65535].End(xlUp).Row - 1
  4. C = [¥X³f¤é!IV1].End(xlToLeft).Column - 1
  5. Arr = [¥X³f¤é!A1].Resize(R, C)
  6. ReDim Brr(1 To C - 1)
  7. Set xD = CreateObject("Scripting.Dictionary")
  8. For j = 2 To C: Brr(C - j + 1) = Arr(1, j): Next j: DateRow = Brr ¡@'¤é´Á¥Ñ¤j¦Ó¤p­ËÂà
  9. ¡@
  10. For i = 2 To R
  11. ¡@For j = 2 To C¡@ '¼Æ¶q²Ö­p¡e¥Ñ«á¦Ó«e¡f±Æ¤J°}¦C
  12. ¡@¡@¡@S = Val(Arr(i, j)): SS = SS + S
  13. ¡@¡@¡@If S = 0 Then Brr(C - j + 1) = "" Else Brr(C - j + 1) = SS
  14. ¡@Next j
  15. ¡@If SS > 0 Then xD(Arr(i, 1)) = Brr: SS = 0¡@ '±N²Ö­p¼Æ¦C¯Ç¤J¦r¨åÀÉ
  16. 101: Next i
  17. '======================================================
  18. R = [¥æ´Á!A65535].End(xlUp).Row
  19. Arr = [¥æ´Á!A1].Resize(R, 4)
  20. ReDim Brr(1 To R, 0): Brr(1, 0) = "¥æ´Á"
  21. For i = 2 To R
  22. ¡@¡@T = Arr(i, 1): S = Arr(i, 4)
  23. ¡@¡@If T <> Arr(i - 1, 1) Then SS = S Else SS = SS + S ¡@'¢ÏÄæ¬Û¦P¡A²Ö­p¡A¤Ï¤§¡A¨ú·í«e¼Æ¶q
  24. ¡@¡@M = Application.Match(SS, xD(T), -1) ¡@ '§Q¥ÎMATCH¡e¤Ï§Ç¡f§ä¬Û¹ï¦ì¸m
  25. ¡@¡@If S = 0 Or IsError(M) Then Brr(i, 0) = "NA" Else Brr(i, 0) = DateRow(M)¡@ 'µL²Å¦X¶ñNA¡A§_«h¶ñ¤é´Á
  26. Next i
  27. [¥æ´Á!E1].Resize(R) = Brr
  28. End Sub
½Æ»s¥N½X
ªþ¥ó¤U¸ü¡G
ESOD_XT_AA_v001.rar (425.39 KB)
¡@

TOP

        ÀR«ä¦Û¦b : µoµÊ®ð¬Oµu¼ÈªºµoºÆ¡C
ªð¦^¦Cªí ¤W¤@¥DÃD