2012-08-31 2 views
1

이 매크로로 고민하고 있습니다. 두 장이 있습니다. 하나는 여러 날짜와 관련하여 매크로에 의해 업데이트되는 많은 수의 데이터 집합입니다.매크로가 한 시트에서 다른 시트로 데이터를 복사하는 경우 (아직없는 경우에만)

데이터가 아직없는 경우에만 해당 시트 ("rawdata1")에서 다른 시트 ("sheet1")로 데이터를 복사하려고합니다 (동일한 데이터의 여러 항목이 " sheet1 "). 다른 시트에 데이터를 복사하는 데 아무런 문제가 없지만 매크로가 여러 번 실행될 때 중복 된 항목을 피하는 방법은 무엇입니까?

내가 지금까지 가지고있는 코드는 : 도움을

Sub CopyData() 
'Copy data if not present in other sheet 
'??? 

Sheets("rawdata1").Select 
Range("A4:AC10000").Select 
Range("A4:AC10000").Copy 

Sheets("Sheet1").Select 
    ' Find the last row of data 
    FinalRow = Cells(Rows.Count, 1).End(xlUp).Row 
    ActiveSheet.Paste 
    Sheets("Sheet1").Select 

감사합니다!

답변

5

귀하의 코드를 단순화 할 수 있습니다

당신이 2007 이상 엑셀에있어 다음 복사본을 실행 한 후 RemoveDuplicates를 사용할 수 있는지 같은 라인의 여러 사본을, 방지로
Sheets("rawdata1").Range("A4:AC10000").Copy _ 
     Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Offset(1,0)  
Sheets("Sheet1").Select 

:이은을 줄일 수 범위는 유일한 행으로 제한됩니다. 참고 : 모든 관련 열 번호를 포함하도록 Columns 매개 변수를 조정해야합니다.

ActiveSheet.UsedRange("$A$1:$E$8").RemoveDuplicates _ 
    Columns:=Array(1, 2, 3, 4, 5), Header:=xlYes 'or xlNo, depending on your data 
+0

다른 데이터 가져 오기에서 동일한 행이 여러 개있는 경우 하나의 행을 삭제하게됩니다. – enderland

+0

@enderland : 좋은 지적입니다. 그렇다면 OP가 데이터에 추가 "키"를 추가해야합니다. –

+0

+1 좋은 @@@16167070 : 어떤 Excel 버전을 사용하고 있습니까? –

관련 문제