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

½Ð°Ýsumif §ï¼g¦¨¦r¨å©Î¬OarrayÅý°õ¦æ³t«×ÅܧÖ

¥»©«³Ì«á¥Ñ Andy2483 ©ó 2022-9-14 14:41 ½s¿è

¦^´_ 4# s3526369


    ÁÂÁ«e½úµoªí¦¹¥DÃD
«á¾Ç²ß±o«Ü¦h§Þ¥©
1.WorksheetFunction.SumIfªº¥Îªk
2.¤u§@ªí©ñ¤J¦r¨å
3.°}¦C§½³¡©ñ¤JÀx¦s®æ

«á¾Çªº¥H¤U¤èªk¥u¸`¬Ù¤@ÂIÂI®É¶¡,¨Ñ«e½ú°Ñ¦Ò
©ß¿j¤Þ¥É,«á¾Ç¤]·Q¾Ç¼F®`ªº«e½ú­Ìªº«ü¾É
  1. Sub TEST_1()
  2. Application.ScreenUpdating = False
  3. Dim X, i As Long, DA, BA, bb, BC, FY, FX, EY, QA, QB, T
  4. Dim S, Srr, Arr, Ac, xR, c, xC
  5. T = Timer
  6. Set Srr = CreateObject("Scripting.Dictionary")
  7.            '0         1        2     3       4       5
  8. S = Split("¤J®w©ú²Ó,¥þ¾÷ºØBOM,A»Ý¨D,b»Ý¨D,«ü¹Ï©ú²Ó,­Ü®w®w¦s", ",")
  9. For i = 0 To UBound(S)
  10.    Set Srr(i) = Sheets(S(i))
  11. Next
  12. Ac = Srr(5).Cells(Rows.Count, 1).End(3).Row
  13. Arr = Range(Srr(5).[N4], Srr(5).Cells(Ac, 1))
  14. For i = 1 To Ac - 3
  15.    xR = Arr(i, 1)
  16.    Arr(i, 5) = WorksheetFunction.SumIf(Srr(0).[O:O], xR, Srr(0).[R:R]) '¤J®w¦X­p
  17.    Arr(i, 3) = WorksheetFunction.SumIf(Srr(1).[P:P], xR, Srr(1).[Z:Z]) '¤½¥qÁ`»Ý¨D
  18.    Arr(i, 10) = WorksheetFunction.SumIf(Srr(2).[A:A], xR, Srr(2).[H:H]) 'A­Ü
  19.    Arr(i, 9) = WorksheetFunction.SumIf(Srr(3).[A:A], xR, Srr(3).[H:H]) 'B­Ü
  20.    Arr(i, 13) = WorksheetFunction.SumIf(Srr(4).[F:F], xR, Srr(4).[L:L]) 'Á`¥X³f
  21.    QA = Arr(i, 4) + Arr(i, 5) ' ''­Ü®w®w¦s
  22.    QB = Arr(i, 11) + Arr(i, 12)
  23.    Arr(i, 8) = QA - QB - Arr(i, 10) - Arr(i, 9) - Arr(i, 13) ''¤½¥q­Ü
  24.    Arr(i, 7) = QA - QB - Arr(i, 13)  ''Á`¼Æ
  25. Next i
  26. c = Array(, 3, 5, 7, 8, 9, 10, 13)
  27. For i = 1 To UBound(c)
  28.    Srr(5).Cells(4, c(i)).Resize(UBound(Arr), 1) = Application.Index(Arr, , c(i))
  29. Next
  30. MsgBox "¦@¯Ó®É¡G" & Timer - T & " ¬í"
  31. End Sub
½Æ»s¥N½X

TOP

¦^´_ 7# samwang


    ¤Ó§Ö¤F! ±j!
ÁÂÁ«e½ú¤À¨É!

TOP

¥»©«³Ì«á¥Ñ Andy2483 ©ó 2022-9-15 14:19 ½s¿è

¦^´_ 4# s3526369


    ÁÂÁ«e½úµoªí¦¹¥DÃD
    ÁÂÁÂsamwang«e½ú«ü¾É
    ÁÂÁ­㴣³¡ªL«e½úªº ¦r¨å¤¤ªº¦r¨å
«á¾Ç²ß±o«Ü¦h§Þ¥©
1.¦r¨å¦W¦r°Ñ¼Æ¤Æ
2.¸ê®Æ­Ë¤J¦r¨å°j°é¤Æ
3..IIF ¨ç¼Æ¸É 0
  1. Option Explicit
  2. Sub TEST_2()
  3. Application.ScreenUpdating = False
  4. Dim x, i, QA, QB, T, S, Srr, Arr, Ac, xR, C
  5. Dim Trr, Brr, Crr, Rs, Rqs, Rqn, Ras, Ran, B
  6. T = Timer
  7. Set Srr = CreateObject("Scripting.Dictionary")
  8. Set Trr = CreateObject("Scripting.Dictionary")
  9. S = Split("¤J®w©ú²Ó,¥þ¾÷ºØBOM,A»Ý¨D,b»Ý¨D,«ü¹Ï©ú²Ó,­Ü®w®w¦s", ",")
  10. For i = 0 To UBound(S)
  11.    Set Srr(i) = Sheets(S(i))
  12.    Set Trr(i) = CreateObject("Scripting.Dictionary")
  13. Next
  14. Rs = Rows.Count
  15. Ac = Srr(5).Cells(Rs, 1).End(3).Row
  16. Arr = Range(Srr(5).[N4], Srr(5).Cells(Ac, 1))
  17. C = Array(15, 18, 16, 26, 1, 8, 1, 8, 6, 12)
  18. For i = 0 To UBound(C) Step 2
  19.    Set Rqs = Srr(i / 2).Cells(1, C(i))
  20.    Set Rqn = Srr(i / 2).Cells(Rs, C(i)).End(3)
  21.    Brr = Srr(i / 2).Range(Rqs, Rqn)
  22.    Set Ras = Srr(i / 2).Cells(1, C(i + 1))
  23.    Set Ran = Srr(i / 2).Cells(Rqn.Row, C(i + 1))
  24.    Crr = Srr(i / 2).Range(Ras, Ran)
  25.    For x = 1 To UBound(Brr)
  26.       B = Brr(x, 1)
  27.       Trr(i / 2)(B) = Trr(i / 2)(B) + Crr(x, 1)
  28.    Next
  29. Next
  30. For i = 1 To Ac - 3
  31.    xR = Arr(i, 1)
  32.    Arr(i, 5) = IIf(Trr(0)(xR), Trr(0)(xR), 0) '¤J®w¦X­p
  33.    Arr(i, 3) = IIf(Trr(1)(xR), Trr(1)(xR), 0) '¤½¥qÁ`»Ý¨D
  34.    Arr(i, 10) = IIf(Trr(2)(xR), Trr(2)(xR), 0) 'A­Ü
  35.    Arr(i, 9) = IIf(Trr(3)(xR), Trr(3)(xR), 0) 'B­Ü
  36.    Arr(i, 13) = IIf(Trr(4)(xR), Trr(4)(xR), 0) 'Á`¥X³f
  37.    QA = Arr(i, 4) + Arr(i, 5) '­Ü®w®w¦s
  38.    QB = Arr(i, 11) + Arr(i, 12)
  39.    Arr(i, 8) = QA - QB - Arr(i, 10) - Arr(i, 9) - Arr(i, 13) '¤½¥q­Ü
  40.    Arr(i, 7) = QA - QB - Arr(i, 13) 'Á`¼Æ
  41. Next i
  42. C = Array(, 3, 5, 7, 8, 9, 10, 13)
  43. For i = 1 To UBound(C)
  44.    Srr(5).Cells(4, C(i)).Resize(UBound(Arr), 1) = Application.Index(Arr, , C(i))
  45. Next
  46. Set Arr = Nothing
  47. Set Brr = Nothing
  48. Set Crr = Nothing
  49. MsgBox "¦@¯Ó®É¡G" & Timer - T & " ¬í"
  50. End Sub
½Æ»s¥N½X

TOP

¦^´_ 12# s3526369


    ½Ð±Ð«e½ú:
1.Sheets("¤J®w©ú²Ó").Range("H2:H600") ³oÄæ¦ì¬OÁôÂæӥB³Q«OÅ@¤F
2.Sheets("¤J®w©ú²Ó").Àx¦s®æ[H2]¤º®e¬O   1501343¤½¥q­Ü   !¸ò¦¹¥DÃD¬O¤°»òÃö«Y?
3.³o WorksheetFunction.SumIfsªº­È­n©ñ­þ¸Ì?

TOP

¦^´_ 20# samwang


    «e½ú¦­¦w
1.¨Æ±¡À³¸Ó¤£¬O³o»ò³æ¯Â,¦h¥X¤F´X­Óªí¤F!
2.WorksheetFunction.SumIfs  WorksheetFunction.SumIf ¨âºØ³£¦³
3.ÃD¥D«e½ú·Pı«Ü¤ß«æ!¸£µ¬°Ê±o«Ü§Ö,°¨¤W®M¥Î,¤S°¨¤W¥X·s°ÝÃD! ¤]ÆZ¦³½ì!
4.«Üºa©¯¥i¥H¦b³o½×¾Â¸ò«e½ú¾Ç²ß,ÁÂÁ«ü¾É¤À¨É!

TOP

¦^´_ 23# s3526369


    ³o¬q¤£¾A¦X«e½úªº·s½d¨ÒÀɤF!±ø¥ó¤£¤@¼Ë
C = Array(15, 18, 16, 26, 1, 8, 1, 8, 6, 12)  '³o¬OO,R,P,ZA,H,A,H,F,LÄæ¦ì
For i = 0 To UBound(C) Step 2   '¨â¨â¤@²Õ¥h«ü©w¤u§@ªí«ü©wÄæ¦ì
   Set Rqs = Srr(i / 2).Cells(1, C(i)) 'i / 2¬O«ü©w¨C­Ó¤u§@ªí  i=0®É Rqs¬O[O1]
   Set Rqn = Srr(i / 2).Cells(Rs, C(i)).End(3)
   Brr = Srr(i / 2).Range(Rqs, Rqn)
   Set Ras = Srr(i / 2).Cells(1, C(i + 1))   ' i=0®É Ras¬O[R1]
   Set Ran = Srr(i / 2).Cells(Rqn.Row, C(i + 1))
   Crr = Srr(i / 2).Range(Ras, Ran)
   For x = 1 To UBound(Brr)
      B = Brr(x, 1)
      Trr(i / 2)(B) = Trr(i / 2)(B) + Crr(x, 1)
   Next
Next

TOP

¦^´_ 17# s3526369


    ³o½d¨Ò¾ã²z¤F¤@¤U,¨Ã¥B§âSumIfªº §ï¬°SumIfs µo²{ºÃ°Ý
1.TC,TD,UC,UD³o´X­ÓÅܼƸò°õ¦æµ²ªG¬O¨S¦³Ãö«Y,©Ò¥Hµ{¦¡¦h¶]¤F0.5¬í
2.°h®w,¼o®Æ­Ü ³o¨â­Ó¤u§@ªí¤]¬O¸ò°õ¦æµ²ªG¬O¨S¦³Ãö«Y

½Ð±Ð«e½ú:
A.¬O½d¨Ò¤£§¹¾ã?
B.ÁÙ¬O­n©¿²¤¤W­z¨â¶µºÃ°Ý!²¤Æ¦p¤Uªºµ{¦¡½X
C.¨ä¥L
¦pªG¬OA ½Ð´£¨Ñ·sªº½d¨Ò,¦pªG¬OB «á¾ÇÄ~Äò¥H¤U¦Cµ{¦¡½X¬ã²ßÁYµu°õ¦æ®É¶¡,
¦pªG¬OC ½Ð¦A»¡©ú
  1. Sub ­Ü®w®w¦s¦X­pCOPY3()
  2. Application.ScreenUpdating = False
  3. Dim x, i As Long, DA, BA, bb, BC, FY, FX, EY, QA, QB, T
  4. Dim S, Srr, Arr, Ac, xR, C, xC
  5. T = Timer
  6. Set Srr = CreateObject("Scripting.Dictionary")
  7.            '0         1        2     3       4       5       6         7
  8. S = Split("¤J®w©ú²Ó,¥þ¾÷ºØBOM,A»Ý¨D,b»Ý¨D,«ü¹Ï©ú²Ó,¥X®w©ú²Ó,¤½¥q½LÂI,­Ü®w®w¦s", ",")
  9. For i = 0 To UBound(S)
  10.    Set Srr(i) = Sheets(S(i))
  11. Next
  12. Ac = Srr(7).Cells(Rows.Count, 1).End(3).Row
  13. Arr = Range(Srr(7).[N4], Srr(7).Cells(Ac, 1))
  14. For i = 1 To Ac - 3
  15.    xR = Arr(i, 1)
  16.    Arr(i, 5) = WorksheetFunction.SumIfs(Srr(0).[R:R], Srr(0).[O:O], xR) '¤J®w¦X­p   CCCCCCC
  17.    TA = WorksheetFunction.SumIfs(Srr(0).[R:R], Srr(0).[O:O], xR, Srr(0).[S:S], "A­Ü")  '¤J®w©ú²Ó-A
  18.    UA = WorksheetFunction.SumIfs(Srr(0).[R:R], Srr(0).[O:O], xR, Srr(0).[S:S], "B­Ü")  '¤J®w©ú²Ó-B
  19.    Arr(i, 3) = WorksheetFunction.SumIfs(Srr(1).[Z:Z], Srr(1).[P:P], xR) '¤½¥qÁ`»Ý¨D CCCCCCC
  20.    'TC = WorksheetFunction.SumIfs(Srr(1).[U:U], Srr(1).[P:P], xR, Srr(1).[T:T], "A­Ü")  '¥þBOM-´Ý³æA»Ý¨D
  21.    'TD = WorksheetFunction.SumIfs(Srr(1).[V:V], Srr(1).[P:P], xR, Srr(1).[T:T], "A­Ü")  '¥þBOM-­q³æA»Ý¨D
  22.    'UC = WorksheetFunction.SumIfs(Srr(1).[U:U], Srr(1).[P:P], xR, Srr(1).[T:T], "B­Ü")  '¥þBOM-´Ý³æB»Ý¨D
  23.    'UD = WorksheetFunction.SumIfs(Srr(1).[V:V], Srr(1).[P:P], xR, Srr(1).[T:T], "B­Ü")  '¥þBOM-­q³æB»Ý¨D
  24.    TE = WorksheetFunction.SumIfs(Srr(4).[L:L], Srr(4).[F:F], xR, Srr(4).[J:J], "A­Ü")  '«ü¹Ï©ú²Ó-A
  25.    UE = WorksheetFunction.SumIfs(Srr(4).[L:L], Srr(4).[F:F], xR, Srr(4).[J:J], "B­Ü")  '«ü¹Ï©ú²Ó-B
  26.    Arr(i, 13) = WorksheetFunction.SumIfs(Srr(4).[L:L], Srr(4).[F:F], xR) '«ü¹Ï©ú²Ó-Á`¥X³f   CCCCCC
  27.    PA = WorksheetFunction.SumIfs(Srr(4).[K:K], Srr(4).[F:F], xR) '«ü¹Ï©ú²Ó-¼o®Æ   CCCCCC
  28.    TB = WorksheetFunction.SumIfs(Srr(5).[R:R], Srr(5).[O:O], xR, Srr(5).[S:S], "A­Ü")  '¥X®w©ú²Ó-A
  29.    UB = WorksheetFunction.SumIfs(Srr(5).[R:R], Srr(5).[O:O], xR, Srr(5).[S:S], "B­Ü")  '¥X®w©ú²Ó-B
  30.    Arr(i, 11) = WorksheetFunction.SumIfs(Srr(5).[R:R], Srr(5).[O:O], xR, Srr(5).[S:S], "°h®w") '¥X®w©ú²Ó-°h®w
  31.    PB = WorksheetFunction.SumIfs(Srr(5).[R:R], Srr(5).[O:O], xR, Srr(5).[S:S], "¼o®Æ­Ü") '¥X®w©ú²Ó-¼o®Æ
  32.    Arr(i, 4) = WorksheetFunction.SumIfs(Srr(6).[G:G], Srr(6).[A:A], xR) '¤W¤ë½LÂI¼Æ
  33.    TF = WorksheetFunction.SumIfs(Srr(6).[F:F], Srr(6).[A:A], xR) '¤½¥q½LÂI-A­Ü
  34.    TG = WorksheetFunction.SumIfs(Srr(6).[K:K], Srr(6).[A:A], xR) '¤½¥q½LÂI-½Õ¾ãA­Ü
  35.    UF = WorksheetFunction.SumIfs(Srr(6).[E:E], Srr(6).[A:A], xR) '¤½¥q½LÂI-B­Ü
  36.    UG = WorksheetFunction.SumIfs(Srr(6).[J:J], Srr(6).[A:A], xR) '¤½¥q½LÂI-½Õ¾ãB­Ü
  37.    Arr(i, 10) = TF + TG + TA + TB - TE 'A­Ü
  38.    Arr(i, 9) = UF + UG + UA + UB - UE 'B­Ü
  39.    Arr(i, 12) = PA + PB
  40.    XA = 0
  41.    If Arr(i, 3) > 0 Then
  42.       XA = Arr(i, 4) + Arr(i, 5) - Arr(i, 11) - Arr(i, 12) - Arr(i, 3)
  43.       If XA > 0 Then
  44.          XA = 0
  45.       End If
  46.    End If
  47.    Arr(i, 6) = XA
  48.    QA = Arr(i, 4) + Arr(i, 5) ' ''­Ü®w®w¦s
  49.    QB = Arr(i, 11) + Arr(i, 12)
  50.    Arr(i, 8) = QA - QB - Arr(i, 10) - Arr(i, 9) - Arr(i, 13) ''¤½¥q­Ü
  51.    Arr(i, 7) = QA - QB - Arr(i, 13)  ''Á`¼Æ
  52. Next i
  53. C = Array(, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
  54. For i = 1 To UBound(C)
  55.    Srr(7).Cells(4, C(i)).Resize(UBound(Arr), 1) = Application.Index(Arr, , C(i))
  56. Next
  57. MsgBox "¦@¯Ó®É¡G" & Timer - T & " ¬í"
  58. End Sub
½Æ»s¥N½X

TOP

¦^´_ 17# s3526369


    ÁÂÁ«e½ú´£¨Ñ¦¹½d¨Ò
²ß±o ÅܼƦW°Ñ¼Æ¤Æ
¥H¤Uµ{¦¡½X¨Ñ°Ñ¦Ò
«Ý«e½ú¼Ó¤Wªº¦^ÂÐ
  1. Option Explicit
  2. Sub ­Ü®w®w¦s¦X­pCOPY5()
  3. Application.ScreenUpdating = False
  4. Dim x&, i&, ­È(1 To 17) As Long
  5. Dim S, Srr, Arr, Ac, xR, C, T, XA, QA, QB
  6. T = Timer
  7. Set Srr = CreateObject("Scripting.Dictionary")
  8.            '0         1        2     3       4       5       6         7
  9. S = Split("¤J®w©ú²Ó,¥þ¾÷ºØBOM,A»Ý¨D,b»Ý¨D,«ü¹Ï©ú²Ó,¥X®w©ú²Ó,¤½¥q½LÂI,­Ü®w®w¦s", ",")
  10. For i = 0 To UBound(S)
  11.    Set Srr(i) = Sheets(S(i))
  12. Next
  13. Ac = Srr(7).Cells(Rows.Count, 1).End(3).Row
  14. Arr = Range(Srr(7).[N4], Srr(7).Cells(Ac, 1))
  15. For i = 1 To Ac - 3
  16.    xR = Arr(i, 1)
  17.    ­È(1) = WorksheetFunction.SumIfs(Srr(0).[R:R], Srr(0).[O:O], xR) '¤J®w¦X­pC
  18.    ­È(2) = WorksheetFunction.SumIfs(Srr(0).[R:R], Srr(0).[O:O], xR, Srr(0).[S:S], "A­Ü") '¤J®w©ú²Ó-A
  19.    ­È(3) = WorksheetFunction.SumIfs(Srr(0).[R:R], Srr(0).[O:O], xR, Srr(0).[S:S], "B­Ü") '¤J®w©ú²Ó-B
  20.    ­È(4) = WorksheetFunction.SumIfs(Srr(1).[Z:Z], Srr(1).[P:P], xR) '¤½¥qÁ`»Ý¨DC
  21.    ­È(5) = WorksheetFunction.SumIfs(Srr(4).[L:L], Srr(4).[F:F], xR, Srr(4).[J:J], "A­Ü") '«ü¹Ï©ú²Ó-A
  22.    ­È(6) = WorksheetFunction.SumIfs(Srr(4).[L:L], Srr(4).[F:F], xR, Srr(4).[J:J], "B­Ü") '«ü¹Ï©ú²Ó-B
  23.    ­È(7) = WorksheetFunction.SumIfs(Srr(4).[L:L], Srr(4).[F:F], xR) '«ü¹Ï©ú²Ó-Á`¥X³fC
  24.    ­È(8) = WorksheetFunction.SumIfs(Srr(4).[K:K], Srr(4).[F:F], xR) '«ü¹Ï©ú²Ó-¼o®ÆC
  25.    ­È(9) = WorksheetFunction.SumIfs(Srr(5).[R:R], Srr(5).[O:O], xR, Srr(5).[S:S], "A­Ü") '¥X®w©ú²Ó-A
  26.    ­È(10) = WorksheetFunction.SumIfs(Srr(5).[R:R], Srr(5).[O:O], xR, Srr(5).[S:S], "B­Ü") '¥X®w©ú²Ó-B
  27.    ­È(11) = WorksheetFunction.SumIfs(Srr(5).[R:R], Srr(5).[O:O], xR, Srr(5).[S:S], "°h®w") '¥X®w©ú²Ó-°h®w
  28.    ­È(12) = WorksheetFunction.SumIfs(Srr(5).[R:R], Srr(5).[O:O], xR, Srr(5).[S:S], "¼o®Æ­Ü") '¥X®w©ú²Ó-¼o®Æ
  29.    ­È(13) = WorksheetFunction.SumIfs(Srr(6).[G:G], Srr(6).[A:A], xR) '¤W¤ë½LÂI¼Æ
  30.    ­È(14) = WorksheetFunction.SumIfs(Srr(6).[F:F], Srr(6).[A:A], xR) '¤½¥q½LÂI-A­Ü
  31.    ­È(15) = WorksheetFunction.SumIfs(Srr(6).[K:K], Srr(6).[A:A], xR) '¤½¥q½LÂI-½Õ¾ãA­Ü
  32.    ­È(16) = WorksheetFunction.SumIfs(Srr(6).[E:E], Srr(6).[A:A], xR) '¤½¥q½LÂI-B­Ü
  33.    ­È(17) = WorksheetFunction.SumIfs(Srr(6).[J:J], Srr(6).[A:A], xR) '¤½¥q½LÂI-½Õ¾ãB­Ü
  34.    Arr(i, 5) = ­È(1)
  35.    Arr(i, 3) = ­È(4)
  36.    Arr(i, 13) = ­È(7)
  37.    Arr(i, 11) = ­È(11)
  38.    Arr(i, 4) = ­È(13)
  39.    Arr(i, 10) = ­È(14) + ­È(15) + ­È(2) + ­È(9) - ­È(5) 'A­Ü
  40.    Arr(i, 9) = ­È(16) + ­È(17) + ­È(3) + ­È(10) - ­È(6) 'B­Ü
  41.    Arr(i, 12) = ­È(8) + ­È(12)
  42.    XA = 0
  43.    If ­È(4) > 0 Then
  44.       XA = ­È(13) + ­È(1) - ­È(11) - Arr(i, 12) - ­È(4)
  45.       If XA > 0 Then
  46.          XA = 0
  47.       End If
  48.    End If
  49.    Arr(i, 6) = XA
  50.    QA = ­È(13) + ­È(1) '­Ü®w®w¦s
  51.    QB = ­È(11) + Arr(i, 12)
  52.    Arr(i, 8) = QA - QB - Arr(i, 10) - Arr(i, 9) - ­È(7) '¤½¥q­Ü
  53.    Arr(i, 7) = QA - QB - ­È(7)  'Á`¼Æ
  54. Next i
  55. C = Array(, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
  56. For i = 1 To UBound(C)
  57.    Srr(7).Cells(4, C(i)).Resize(UBound(Arr), 1) = Application.Index(Arr, , C(i))
  58. Next
  59. MsgBox "¦@¯Ó®É¡G" & Timer - T & " ¬í"
  60. End Sub
½Æ»s¥N½X

TOP

¤Ó¼F®`¤F!
33# ²»Às¤Q¤K´x
34# ¥´³q¥ô·þ¤G¯ß

TOP

¦^´_ 33# s3526369


    ´£¿ô«e½ú
¤U¤è¬õ¦r³B¶·§ï¬°2

Sub ­Ü®w®w¦s()
Dim Arr, xD, xD1, xD2, xD3, xD4, xD5, xD6, xD7, T$, i&, QA, QB
Set xD = CreateObject("Scripting.Dictionary")   '¤J®w¦X­p
Set xD1 = CreateObject("Scripting.Dictionary")  '¤½¥qÁ`»Ý¨D
Set xD2 = CreateObject("Scripting.Dictionary")  'A­Ü
Set xD3 = CreateObject("Scripting.Dictionary")  'B­Ü
Set xD4 = CreateObject("Scripting.Dictionary")  'Á`¥X³f
Set xD5 = CreateObject("Scripting.Dictionary")  '½LÂI¼Æ'
Set xD6 = CreateObject("Scripting.Dictionary") '°h®w
Set xD7 = CreateObject("Scripting.Dictionary")  '¼o®Æ
TM = Timer
With Sheets("¤J®w©ú²Ó")
    Arr = .Range(.[r1], .[o65536].End(3))
    For i = 2 To UBound(Arr)
        T = Arr(i, 1): xD(T) = xD(T) + Arr(i, 4) '¤J®w¦X­p
    Next
End With
With Sheets("¥þ¾÷ºØBOM")
    Arr = .Range(.[Z1], .[p65536].End(3))
    For i = 2 To UBound(Arr)
        T = Arr(i, 1): xD1(T) = xD1(T) + Arr(i, 11) '¤½¥qÁ`»Ý¨D
    Next
End With
With Sheets("A»Ý¨D")
    Arr = .Range(.[h1], .[A65536].End(3))
    For i = 4 To UBound(Arr)
        T = Arr(i, 1): xD2(T) = xD2(T) + Arr(i, 8)  'A­Ü
    Next
End With
With Sheets("B»Ý¨D")
    Arr = .Range(.[h1], .[A65536].End(3))
    For i = 4 To UBound(Arr)
        T = Arr(i, 1): xD3(T) = xD3(T) + Arr(i, 8)  'B­Ü
    Next
End With
With Sheets("«ü¹Ï©ú²Ó")
    Arr = .Range(.[L1], .[f65536].End(3))
    For i = 4 To UBound(Arr)
        T = Arr(i, 1): xD4(T) = xD4(T) + Arr(i, 7)  'Á`¥X³f
    Next
End With
With Sheets("¤½¥q½LÂI")
    Arr = .Range(.[G1], .[A65536].End(3))
    For i = 4 To UBound(Arr)
        T = Arr(i, 1): xD5(T) = xD5(T) + Arr(i, 7)  '¤½¥q½LÂI
    Next
End With

With Sheets("°h®w")
    Arr = .Range(.[C1], .[A65536].End(3))
    For i = 3 To UBound(Arr)
        T = Arr(i, 1): xD6(T) = xD6(T) + Arr(i, 3)  'B­Ü
    Next
End With
With Sheets("¼o®Æ­Ü")
    Arr = .Range(.[C1], .[A65536].End(3))
    For i = 3 To UBound(Arr)
        T = Arr(i, 1): xD7(T) = xD7(T) + Arr(i, 3)  'B­Ü
    Next
End With

With Sheets("­Ü®w®w¦s")
    Arr = .Range(.[m3], .[A65536].End(3))
    For i = 2 To UBound(Arr)
        T = Arr(i, 1)
        QA = xD5(T) + xD(T) ' ''­Ü®w®w¦s
        QB = xD6(T) + xD7(T)
        Arr(i, 5) = xD(T)    '¤J®w¦X­p
        Arr(i, 13) = xD4(T)  'Á`¥X³f
        Arr(i, 3) = xD1(T)   'Á`»Ý¨D
        Arr(i, 8) = QA - QB - xD2(T) - xD3(T) - xD4(T)  '¤½¥q­Ü
        Arr(i, 9) = xD3(T)   'B­Ü
        Arr(i, 10) = xD2(T)  'A­Ü
        Arr(i, 7) = QA - QB - xD4(T)  'Á`¼Æ
        Arr(i, 4) = xD5(T)
        Arr(i, 11) = xD6(T)
        Arr(i, 12) = xD7(T)
        
        If Arr(i, 3) > 0 Then
        XA = xD5(T) + xD(T) - xD6(T) - xD7(T) - Arr(i, 3)
            If XA >= 0 Then XA = "0"
        Else
            XA = "0"
        End If
        If xD(T) = 0 Then Arr(i, 5) = "0"
        If xD5(T) = 0 Then Arr(i, 4) = "0"
        If xD1(T) = 0 Then Arr(i, 3) = "0"
        If xD4(T) = 0 Then Arr(i, 13) = "0"
   Arr(i, 6) = XA
    Next
    .[a3].Resize(UBound(Arr), 13) = Arr
End With
'MsgBox "¦@¯Ó®É¡G" & Timer - TM & " ¬í"
End Sub

TOP

        ÀR«ä¦Û¦b : ¯àµ½¥Î®É¶¡ªº¤H¡A¥²¯à´x´¤¦Û¤v§V¤Oªº¤è¦V¡C
ªð¦^¦Cªí ¤W¤@¥DÃD