2012-07-19 6 views
0

전체 행과 여러 열이있는 Excel 워크 시트가 있습니다. 첫 번째 열은 제조업체 이름을, 두 번째 열은 모든 제품의 제품 코드를, 세 번째 열은 설명 등을 포함합니다. 내가 원하는 것은 특정 제품 코드에 해당하는 행을 복사하는 것입니다. 예를 들어 : - B016을매크로를 사용하여 한 워크 시트의 행을 다른 워크 시트로 복사 Excel

**Manufacturer  Product code  Description** 
abc     B010    blah blah 
dgh     A012     
hgy     X010     
eut     B013     
uru     B014     
eut     B015    
asd     G012    
sof     B016 
uet     B016 
etc 

는 B010 사이에있는 제품 코드를 가진 행을 복사하는 방법이 있나요? 이중/일치하는 제품 코드가있을 수도 있으며 복사 할 수도 있습니다.

의미가 있습니까?

죄송합니다. 아직 여기에 넣을 VB 코드가 없습니다. 사전에

감사합니다.

+0

동일한 셀 참조를 사용하여 새 워크 시트에 복사 하시겠습니까? 아니면 제품'abc', 코드'B010'은 행 1, 제품'eut', 코드'B013'은 행 2 등이 될까요? – LittleBobbyTables

+0

꽤 좋은 엑셀의 [고급 필터] (http://office.microsoft.com/en-us/excel-help/filter-by-using-advanced-criteria-HP005200178.aspx)를 사용하면이 * ([ vba ref] (http://msdn.microsoft.com/en-us/library/aa221800(v=office.11) .aspx)) * * ([vba 예제] (http://social.msdn.microsoft. COM/포럼/EN-US/exceldev/실/1a53a4af-5877-44a3-8654-b32fb7e34e03 /)) * –

+0

@LittleBobbyTables가 - 네,이 새 워크 시트에 새로운 행을 시작할 수 있습니다. 그건별로 중요하지 않습니다. 감사. – duper

답변

0

트릭을 수행해야합니다. B010과 B016 사이에있는 B 셀 값의 A : C 범위 셀을 Sheet2의 다음 사용 가능한 행에 복사합니다.

Private Sub CopyRows() 
    Dim lastrow As Long 
    Dim r1 As Long, r2 As Long 

    ' Get the last row in the worksheet 
    lastrow = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row 

    r2 = 1 

    For r1 = 1 To lastrow 
     ' If the last three characters of the B cell are numeric... 
     If IsNumeric(Right(Sheet1.Range("$B$" & r1).Value, 3)) Then 
      ' If the first character of the B cell is "B", and the last three 
      ' characters are between 10 and 16 ... 
      If Left(Sheet1.Range("$B$" & r1).Value, 1) = "B" And _ 
       CLng(Right(Sheet1.Range("$B$" & r1).Value, 3)) >= 10 And _ 
       CLng(Right(Sheet1.Range("$B$" & r1).Value, 3)) <= 16 Then 

       ' ... copy the A-C range for the row to the next available row 
       ' in Sheet2 
       Sheet2.Range("$A$" & r2, "$C$" & r2).Value = _ 
        Sheet1.Range("$A$" & r1, "$C$" & r1).Value 

       r2 = r2 + 1 

      End If 
     End If 
    Next 
End Sub 
관련 문제