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

½Ð°Ý«e½ú¤@­Ó¦nÃøªºVBA³øªí³]­p

½Ð°Ý«e½ú¤@­Ó¦nÃøªºVBA³øªí³]­p

¦U¦ì«e½ú¡A¤p§Ì¬°¤F¤u§@»Ý¨D¡A¶R¤FVBAªº®Ñ¡A¼g¤F¤@­ÓÄꪺVBA¥h°õ¦æ¡A²£¥Í»Ý­nªº³øªí
¦ý¦³¤Ó¦hªº°ÝÃD¤p§Ì¨S¿ìªkµu®É¶¡¬ð¯}¡A¦ý¦ÑÁó¤S­nªº«D±`«æ¬°¤F¤p§Ìªº¶º¸J¡A¤p§Ì¤£±o¤£
¨Ó©M¦U¦ì«e軰¨D±Ï¡A½Ð¦U¦ì«e½úÀ°¦£¡A¸÷Á¡I«ô°U«ô°U¡C

VBA.rar (24.31 KB)

¦^´_ 1# tsou516
±NSheet1.B01~B15ªº­È©ñ¤J³W©wªºSheet2.LÄæ~TÄ檺¦ì¸m(¦³ªº­n¬Û¥[)
B01~B15¦³15Äæ ,LÄæ~TÄ榳9Äæ,³oÄæ¼Æ¤£¹ïµ¥,
§A»Ý»¡©ú D-Pak,SO-8,PMPAK,SPR-PAK ,SOT-23,SOT-26,TO-220,TO-263 ªº±ø¥ó
  1. Sub °j°é()
  2.     Dim Rng As Range, M As Variant, E
  3.     Set Rng = Sheets("SHEET3").Range("A:A")
  4.     Sheets("SHEET2").UsedRange.Offset(1).Clear
  5.     For Each E In Sheets("SHEET1").Range("A:A").SpecialCells(xlCellTypeConstants) '¯S®íÀx¦s®æ(¦r¦ê),±Æ°£ªÅ¥ÕÀx¦s®æ.
  6.         If E.Row > 1 Then        '±Æ°£ªíÀY
  7.             M = Application.Match(E, Rng, 0)  '·j´MDevice¦bRngªº¦ì¸m=¦C¸¹
  8.             If IsNumeric(M) Then              '¬O¼Æ¦r:¦³§ä¨ìDevice¦bRngªº¦ì¸m
  9.                 With Sheets("SHEET2").Cells(Sheets("SHEET2").Rows.Count, "A").End(xlUp).Offset(1) 'SHEET2 AÄæ ¼g¤Wªº¦ì¸m
  10.                      'SHEET2 AÄæ ¥Ñ¤U©¹¤W¨ì¦³¸ê®ÆÀx¦s®æªº¤U¤@¦C
  11.                     .Range("A1") = Rng.Cells(M, 2)   'Package ¦b Device ªº¥kÄæ
  12.                     .Range("B1") = E                 'Device
  13.                     .Range("D1") = E.Range("C1")     'Datecode
  14.                     .Range("E1") = E.Range("D1")     'Wafer ID
  15.                     '*************************
  16.                     'µ¥­Ô§Aªº±ø¥ó»¡©ú«á¼gµ{¦¡½X
  17.                     '*************************
  18.                 End With
  19.             End If
  20.         End If
  21.     Next
  22. End Sub
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

·PÁ«e½úÄ@·N¥X¤â¬Û±Ï¡A¸U¤À·PÁ¡A§Ú¦A¸É¤W»Ý¨D©M±ø¥óªº»¡©ú¡A¦A½Ð±z¹L¥Ø¡I

³]­p»¡©ú.rar (13.72 KB)

TOP

¦^´_ 3# tsou516
  1. Sub °j°é()
  2.     Dim Rng(1 To 6) As Range, E As Variant, M As Variant, M1 As Variant, i As Integer, ii As Integer
  3.     With Sheets("sheet1")                                  '«È¤á¸ê®Æ
  4.         If .[COUNTA(A:A)] <> .UsedRange.Rows.Count Then .Range("A:A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete '§R°£ªÅ¥Õ¦C
  5.         For E = 0 To 14
  6.             .[E1].Offset(, E).Name = .[E1].Offset(, E) & "­È" '©w¸q¦WºÙ:  B01 B02 B03 B04.....
  7.         Next
  8.     End With
  9.     Sheets("Sheet2").UsedRange.Offset(1).Clear              '²M°£²Ä¤G¦C(§t)«áªº¸ê®Æ
  10.     Set Rng(1) = Sheets("Sheet1").UsedRange.Columns(1)      '«È¤á¸ê®Æ
  11.     Set Rng(2) = Sheets("Sheet2").Range("A:A")              '­n¼g¤Jªº½d³ò
  12.     Set Rng(3) = Sheets("Sheet3").Range("A:A")              'Device
  13.     Set Rng(4) = Sheets("Sheet4").Range("A:A")              'Package
  14.     Set Rng(5) = Sheets("Sheet4").Range("B1:N1")            'Test out Q'ty,RG/SWT ....
  15.     For Each E In Rng(1).Cells                              '«È¤á¸ê®Æ
  16.         If E.Row > 1 Then                                   '±Æ°£ªíÀY
  17.             M = Application.Match(E, Rng(3), 0)             '·j´MSheet1ªºDevice¦bSheet3ªº¦C¦ì
  18.             If IsNumeric(M) Then M1 = Application.Match(Rng(3).Cells(M, 2), Rng(4), 0)
  19.                                                             'M1: ¶Ç¦^Sheet3ªºPackage¦bSheet4ªº¦C¦ì
  20.             If IsNumeric(M) And IsNumeric(M1) Then
  21.                 i = Application.CountA(Rng(2)) + 1          '­pºâ¦³¤å¦rÀx¦s®æ¼Æ
  22.                 With Sheets("SHEET2").Cells(i, "A")         'SHEET2 AÄæ ¼g¤Wªº¦ì¸m
  23.                     .Range("A1") = Rng(4).Cells(M1, 1)      'Sheet4¹ïÀ³ªºPackage
  24.                     .Range("B1") = E                        'Device
  25.                     .Range("D1") = E.Range("C1")            'Datecode
  26.                     .Range("E1") = E.Range("D1")            'Wafer ID
  27.                     For Each C In Rng(5).Offset(M1 - 1)     '¤ñ¹ï¹ïÀ³ªº'B01 B02 B03 B04.....
  28.                         If C <> "" Then
  29.                             M = Application.Match(C.Parent.Cells(1, C.Column), Rng(2).Cells(1).EntireRow, 0)   '·j´MSheets("Sheet2")ªºÄæ¦ì
  30.                             'M=B01 B02 B03 B04.....¤W¤è²Ä¤@¦C¼ÐÀY¦bSheet2²Ä¤@¦CªºÄæ¦ì¼Æ
  31.                             For ii = 0 To UBound(Split(C, "+")) '¦r¦ê¥H"+"¤À³Î¦¨°}¦C
  32.                                 '.Parent.Cells(i, M) = .Parent.Cells(i, M) + Range(Split(C, "+")(ii)).Offset(E.Row - 1)           'SHEET4ªº®æ¦¡ B01­È B02­È B03­È B04­È.....
  33.                                 .Parent.Cells(i, M) = .Parent.Cells(i, M) + Range(Split(C, "+")(ii) & "­È").Offset(E.Row - 1)   'SHEET4ªº®æ¦¡ B01 B02 B03 B04.....
  34.                                 '.Parent -> Sheets("SHEET2")
  35.                                 'Range(Split(C, "+")(ii) & "­È"): ¤u§@ªí¤W©Ò©w¸q¦WºÙªº¦ì¸m
  36.                             Next
  37.                         End If
  38.                     Next
  39.                 End With
  40.            Else
  41.                 If Rng(6) Is Nothing Then
  42.                     Set Rng(6) = E.EntireRow                    '¤ñ¹ï¤£¨ìªºDevice,Package
  43.                 Else
  44.                     Set Rng(6) = Union(Rng(6), E.EntireRow)     'Union ¤èªk  ¶Ç¦^¨â­Ó©Î¦h­Ó½d³òªº¦X¨Ö½d³ò¡C

  45.                 End If
  46.            End If
  47.         End If
  48.     Next
  49.     If Not Rng(6) Is Nothing Then Rng(6).Delete
  50. End Sub
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¦^´_ 4# GBKEE

«D±`·PÁÂGBKEEª©¤jªºÀ°¦£¡AÅý§Úªº¤u§@¯à¼È®É«O¦í¡AÁÂÁ¡I

TOP

        ÀR«ä¦Û¦b : ¡i¦æµ½­n¤Î®É¡j¦æµ½­n¤Î®É¡A¥\¼w­n«ùÄò¡C¦p¿N¶}¤ô¤@¯ë¡A¥¼¿N¶}¤§«e¤d¸U¤£­n°±º¶¤õ­Ô¡A§_«h­«¨Ó´N¤Ó¶O¨Æ¤F¡C
ªð¦^¦Cªí ¤W¤@¥DÃD