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

[µo°Ý] ½Ð°Ý¦p¦ó¼¶¼gVBA¡A¨Ï¯S©w¼Æ­È¦¨¬°©Ò¹ïÀ³©ó¨ä¥L¤u§@ªíÀx¦s®æ¤º®e¨Ã¥[Á` (¤w¸Ñ¨M)

¦^´_ 2# sax868
  1. Sub ex()
  2. Dim A As Range
  3. Set d = CreateObject("Scripting.Dictionary")
  4. With Sheet2 'Size
  5. For Each A In .Range(.[A2], .[A2].End(xlDown))
  6.    d(A & A.Offset(, 2)) = A.Offset(, 3).Value
  7. Next
  8. With Sheet3 'Color
  9. For Each A In .Range(.[A2], .[A2].End(xlDown))
  10.    d(A & A.Offset(, 2)) = A.Offset(, 3).Value
  11. Next
  12. With Sheet1 'Original
  13. For Each A In .Range(.[G2], .[G2].End(xlDown))
  14. ar = Split(Replace(A.Offset(, 1), " ", ""), ",") 'Color
  15. ay = Split(Replace(A.Offset(, 3), " ", ""), ",") 'Size
  16.    For i = 0 To UBound(ar)
  17.        y = y + d(A & ar(i))
  18.    Next
  19.    For i = 0 To UBound(ay)
  20.       x = x + d(A & ay(i))
  21.    Next
  22.    
  23.    A.Offset(, 8) = A & A.Offset(, -1)
  24.    A.Offset(, 9).Resize(, 2) = Array(y, x)
  25.    x = 0: y = 0
  26. Next
  27. End With
  28. End With
  29. End With
  30. End Sub
½Æ»s¥N½X
¾Ç®üµL²P_¤£®¢¤U°Ý

TOP

¦^´_ 5# sax868
  1. Sub ex()

  2. Dim A As Range

  3. Set d = CreateObject("Scripting.Dictionary")

  4. With Sheet2 'Size

  5. For Each A In .Range(.[A2], .Cells(.Rows.Count, 1)).SpecialCells(xlCellTypeConstants)

  6.    d(A & A.Offset(, 2)) = A.Offset(, 3).Value

  7. Next

  8. With Sheet3 'Color

  9. For Each A In .Range(.[A2], .Cells(.Rows.Count, 1)).SpecialCells(xlCellTypeConstants)

  10.    d(A & A.Offset(, 2)) = A.Offset(, 3).Value

  11. Next

  12. With Sheet1 'Original

  13. For Each A In .Range(.[G2], .Cells(.Rows.Count, 7)).SpecialCells(xlCellTypeConstants)

  14. ar = Split(Replace(A.Offset(, 1), " ", ""), ",") 'Color

  15. ay = Split(Replace(A.Offset(, 3), " ", ""), ",") 'Size

  16.    For i = 0 To UBound(ar)

  17.        y = y + d(Left(A, 7) & ar(i))

  18.    Next

  19.    For i = 0 To UBound(ay)

  20.       x = x + d(Left(A, 7) & Split(ay(i), "-")(0))

  21.    Next

  22.    

  23.    A.Offset(, 8) = A & A.Offset(, -1)

  24.    A.Offset(, 9).Resize(, 2) = Array(Format(y, "#.##%"), Format(x, "#.##%"))

  25.    x = 0: y = 0

  26. Next

  27. End With

  28. End With

  29. End With

  30. End Sub
½Æ»s¥N½X
¤£²M·¡²Ä5­Ó°ÝÃD¦b´y­z¬Æ»ò?
¾Ç®üµL²P_¤£®¢¤U°Ý

TOP

        ÀR«ä¦Û¦b : ¡i®É¶¡¦pÆp¥Û¡j®É¶¡¹ï¤@­Ó¦³´¼¼zªº¤H¦Ó¨¥¡A´N¦pÆp¥Û¯ë¬Ã¶Q¡F¦ý¹ï·M¤H¨Ó»¡¡A«o¹³¬O¤@§âªd¤g¡A¤@ÂI»ù­È¤]¨S¦³¡C
ªð¦^¦Cªí ¤W¤@¥DÃD