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

¨Ì«ü©wÄæ¦ì¤¤ªº¸ê®Æ¦Û°Ê§P©w¿é¤J¹ïÀ³ªºÀɮ׸ê®Æ¤¤???

¦^´_ 1# p6703
¸Õ¸Õ¬Ý
  1. Option Explicit
  2. Sub Ex()
  3.     Dim D As Object, Ar(1 To 11), Ay(), xi As Integer, K, Wb As Workbook
  4.     Set D = CreateObject("Scripting.Dictionary")
  5.     xi = 2
  6.     With ThisWorkbook.Sheets("SHEET1")
  7.         Do While .Cells(xi, "M") <> ""
  8.             Ar(1) = .Cells(xi, "C")                         'Ar(1)->Ar(11) = AÄæ:KÄæ
  9.             Ar(4) = .Cells(xi, "F")                         '«ü©w¤£³sÄòªºÄæ¦ì ¨ì«ü©w¦ì¸m
  10.             Ar(5) = .Cells(xi, "J")
  11.             Ar(6) = .Cells(xi, "B")
  12.             Ar(8) = .Cells(xi, "D")
  13.             Ar(9) = .Cells(xi, "E")
  14.             Ar(11) = .Cells(xi, "H")
  15.             If Not D.exists(.Cells(xi, "M").Value) Then     '¦r¨åª«¥ó ªºKEY ¤£¦s¦b
  16.                 D(.Cells(xi, "m").Value) = Array(Ar)        '¦r¨åª«¥óªºitem «ü©w¬°°}¦C
  17.             Else                                            '¦r¨åª«¥óªºKEY¦s¦b
  18.                 Ay = D(.Cells(xi, "M").Value)               'Ay=¦r¨åª«¥óªºITEM
  19.                 ReDim Preserve Ay(UBound(Ay) + 1)           '°}¦Cªº¤¸¯À¤º®e¤£ÅÜ,·s¼W¤@­Ó¤¸¯À
  20.                 Ay(UBound(Ay)) = Ar                         '·s¼W¤@­Ó¤¸¯À «ü©w¬° Ar
  21.                 D(.Cells(xi, "m").Value) = Ay               '¦r¨åª«¥óªºITEM=Ay°}¦C
  22.             End If
  23.             xi = xi + 1
  24.         Loop
  25.     End With
  26.     For Each K In D.keys
  27.         If K = 1202 Then Set Wb = Workbooks("A.xls")             'Àɮפw¶}±Ò
  28.         'If K = 1202 Then Set Wb = Workbooks.Open("¸ô®| \A.xls") 'ÀÉ®×¥¼¶}±Ò
  29.         If K = 1205 Then Set Wb = Workbooks("B.xls")
  30.         If K = 1206 Then Set Wb = Workbooks("C.xls")
  31.         xi = Application.CountA(Wb.Sheets(1).Range("A:A")) + 1
  32.         Ay = Application.Transpose(Application.Transpose(D(K)))
  33.         Wb.Sheets(1).Cells(xi, "A").Resize(UBound(Ay, 1), UBound(Ay, 2)) = Ay
  34.         Wb.Close True                                           'Ãö³¬ÀÉ®×: ¦sÀÉ
  35.     Next
  36. End Sub
½Æ»s¥N½X

TOP

¦^´_ 3# p6703
  1. Option Explicit
  2. Sub Ex()
  3.     Dim D As Object, Dwb As String, Ar(1 To 11), Ay(), xi As Integer, K, Wb As Workbook
  4.     Dim W As Workbook
  5.     Set D = CreateObject("Scripting.Dictionary")
  6.     xi = 2
  7.     With ThisWorkbook.Sheets("SHEET1")
  8.         Do While .Cells(xi, "M") <> ""
  9.             Ar(1) = .Cells(xi, "C")                         'Ar(1)->Ar(11) = AÄæ:KÄæ
  10.             Ar(2) = IIf(.Cells(xi, "A") = "OS" Or .Cells(xi, "A") = "IS", 2, "")                       'Ar(1)->Ar(11) = AÄæ:KÄæ
  11.             'BÄæ¦ì¨Ì¨Ó·½¸ê®Æ¬°IS©ÎOS§Y¦Û°Ê¶ñ¤J2¡A§_«h¤@«ß¬°ªÅ¥Õ
  12.             Ar(4) = .Cells(xi, "F")                         '«ü©w¤£³sÄòªºÄæ¦ì ¨ì«ü©w¦ì¸m
  13.             Ar(5) = .Cells(xi, "J")
  14.             Ar(6) = .Cells(xi, "B")
  15.             Ar(8) = .Cells(xi, "D")
  16.             Ar(9) = .Cells(xi, "E")
  17.             Ar(11) = .Cells(xi, "H")
  18.             If Not D.exists(.Cells(xi, "M").Value) Then     '¦r¨åª«¥ó ªºKEY ¤£¦s¦b
  19.                 D(.Cells(xi, "m").Value) = Array(Ar)        '¦r¨åª«¥óªºitem «ü©w¬°°}¦C
  20.             Else                                            '¦r¨åª«¥óªºKEY¦s¦b
  21.                 Ay = D(.Cells(xi, "M").Value)               'Ay=¦r¨åª«¥óªºITEM
  22.                 ReDim Preserve Ay(UBound(Ay) + 1)           '°}¦Cªº¤¸¯À¤º®e¤£ÅÜ,·s¼W¤@­Ó¤¸¯À
  23.                 Ay(UBound(Ay)) = Ar                         '·s¼W¤@­Ó¤¸¯À «ü©w¬° Ar
  24.                 D(.Cells(xi, "m").Value) = Ay               '¦r¨åª«¥óªºITEM=Ay°}¦C
  25.             End If
  26.             xi = xi + 1
  27.         Loop
  28.     End With
  29.     For Each K In D.keys
  30.         If K = 1202 Then Dwb = "A.xls"             '«ü©wÀÉ®×
  31.         If K = 1205 Then Dwb = "B.xls"
  32.         If K = 1206 Then Dwb = "C.xls"
  33.         Set Wb = Nothing
  34.         'Nothing ÃöÁä¦r¬O¥Î¨Ó±N¤@­Óª«¥óÅܼƱq¤@­Ó¹ê»Úªºª«¥óùؤÀÂ÷¶}¨Ó¡C¨Ï¥Î Set ³¯­z¦¡¥i«ü©w Nothing µ¹ª«¥óÅܼÆ
  35.         For Each W In Workbooks
  36.             If W.Name = Dwb Then Set Wb = Workbooks(Dwb): Exit For                   'Àɮצs¦b ³]©wÅܼÆ
  37.         Next        '
  38.         If Wb Is Nothing Then Set Wb = Workbooks.Open(ThisWorkbook.Path & "\" & Dwb) 'Àɮפ£¦s¦b ³]©wÅܼÆ
  39.         xi = Application.CountA(Wb.Sheets(1).Range("A:A")) + 1
  40.         Ay = Application.Transpose(Application.Transpose(D(K)))
  41.         Wb.Sheets(1).Cells(xi, "A").Resize(UBound(Ay, 1), UBound(Ay, 2)) = Ay
  42.         Wb.Close True                                           'Ãö³¬ÀÉ®×: ¦sÀÉ
  43.     Next
  44. End Sub
½Æ»s¥N½X
PS ½Ð«ö¦^ÂÐÁä ,½×¾Â·|³qª¾§Ú¦³¦^ÂЪº©«¤l

TOP

        ÀR«ä¦Û¦b : °µ¦n¨Æ¤£¯à¤Ö§Ú¤@¤H¡A°µÃa¨Æ¤£¯à¦h§Ú¤@¤H¡C
ªð¦^¦Cªí ¤W¤@¥DÃD