>source

두 장의 데이터가 있고 특정 기준에 따라 시트 2에서 시트 1로 데이터를 복사하려고합니다. 여러 지역이 있고 "아프리카"지역의 데이터 만 시트 1에 복사되기를 원합니다. 내가 사용한 코드는 다음과 같습니다.

Sub CopyPaste()
    Dim wb As Workbook
    Dim workbookname As String
    Dim wsDest As Worksheet
    Dim wsSrc As Worksheet
    Dim rng1, rng2 As Range
      
    workbookname = ActiveWorkbook.Name
    
    Workbooks(workbookname).Sheets("Sheet2").Activate
    Set wsSrc = Workbooks(workbookname).Sheets("Sheet2")
    
    Workbooks(workbookname).Sheets("Sheet1").Activate
    ' Destination worksheet: Master Sheet
    Set wsDest = Workbooks(workbookname).Sheets("Sheet1")
    ar = Array("Region", "Project Number", "Project Long Name", "PM", "KOB")
    arr = Array("Region", "Project No.", "Project Long Name", "Project Manager", "KOB")
 
    For i = 3 To wsSrc.Range("A" & Rows.count).End(xlUp).Row
        If wsSrc.Range("O" & i) = "Africa" Then
            For j = 5 To 5000
                wsSrc.Range(ar(j) & i).Copy wsDest.Range(arr(j) & Rows.count).End(xlUp)(3)
            Next j
        End If
    Next i
 
End Sub

이 코드는 실행되지만 출력을 제공하지 않습니다. 올바른 출력을 얻기 위해 어떤 수정을해야할지 잘 모르겠습니다. 동일한 도움을 주시면 감사하겠습니다.


  • 답변 # 1

    이것으로 가십시오 :

    Sub CopyPaste()
    Dim WsSrc As Worksheet, WsDest As Worksheet, i As Long, CopyRow As Long
    Set WsSrc = Sheets("Sheet2") 'Source sheet to search and copy from
    Set WsDest = Sheets("Sheet1") 'Destination/Copy sheet
    CopyRow = 5 'Starting row to put data on copy sheet
    For i = 3 To WsSrc.Range("O" & Rows.Count).End(xlUp).Row 'from row 3 to the last row in source sheet
        If WsSrc.Range("O" & i) = "Africa" Then
            WsDest.Range("B" & CopyRow) = WsSrc.Range("O" & i)
            WsDest.Range("E" & CopyRow) = WsSrc.Range("E" & i)
            WsDest.Range("I" & CopyRow) = WsSrc.Range("G" & i)
            WsDest.Range("J" & CopyRow) = WsSrc.Range("H" & i)
            WsDest.Range("K" & CopyRow) = WsSrc.Range("L" & i)
            CopyRow = CopyRow + 1
        End If
    Next i
    End Sub
    
    

관련 자료

  • 이전 C ++ 전력 소비를 계산할 수 없습니다
  • 다음 windows - Mac Native WebRTC에서 기본 재생 장치를 어떻게 변경합니까?