2016-10-24 1 views
0

누군가 내 대상 통합 문서에 붙여 넣을 때 소스 서식을 유지할 수있는 방법을 알려주시겠습니까? 아래 코드는 기본적으로 한 스프레드 시트의 데이터를 다른 스프레드 시트로 전송 한 다음 대상 스프레드 시트에서 중복 행을 제거합니다. 감사!소스 서식 유지

Sub TransferMar() 
' 
' Transfer Mar Macro 
' 

' 
    Dim lastRow As Long 

    ActiveSheet.Unprotect Password:="xxxxxx" 

    Columns.EntireColumn.Hidden = False 
    Rows.EntireRow.Hidden = False 
    Cells.AutoFilter 

    lastRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row 


    Range(Cells(4, 1), Cells(lastRow, 15)).Copy 

    Application.DisplayAlerts = False 

    ActiveWorkbook.Close 

    Dim wkb As Workbook 

    Set wkb = Workbooks.Open("C:\Users\xxxxx\Desktop\Master - Mar.xlsx") 

    Columns.EntireColumn.Hidden = False 
    Rows.EntireRow.Hidden = False 
    Cells.AutoFilter 

    erow = wkb.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row 

    wkb.Sheets(1).Paste Destination:=Sheets(1).Range(Cells(erow, 1), Cells(erow, 15)) 

    With ActiveSheet 
     Set Rng = Range("A3", Range("O3").End(xlDown)) 
     Rng.RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15), Header:=xlYes 
    End With 


    wkb.ActiveSheet.Cells.EntireColumn.AutoFit 

    wkb.Close SaveChanges:=True 

    MsgBox "Rows copied into Master MAR Workbook" 

End Sub 
+1

'.PasteSpecial Paste : = xlPasteFormats'는 구문입니다. –

+0

붙여 넣기 후 소스 통합 문서를 닫으십시오. – Slai

+0

소개를 건너 뛸 수 있도록 코드 줄을 코드에 추가 할 수 있습니까? 이 줄을 wkb로 통합하는 방법을 잘 모르겠습니다. 시트 (1). 붙여 넣기 대상 : = 시트 (1). 범위 (셀 (erow, 1), 셀 (erow, 15)) –

답변

0

특수 붙여 넣기 구문은 .PasteSpecial Paste:=xlPasteFormats입니다.

당신의 라인을 따라 뭔가에 코드를 변경하여이 구현할 수 : 그러나

Worksheets(1).Range(Cells(erow, 1), Cells(erow, 15)).PasteSpecial Paste:=xlPasteFormats 

, 난 여전히 당신이 이전에 복사 된 데이터를 포함하는 통합 문서를 폐쇄하고 있기 때문에 위의 작동 잘 모르겠어요 붙여 넣기. 이전 통합 문서를 닫을 경우 코드가 인 경우 붙여 넣기 후에 코드가 작동한다는 것이 확실합니다 (테스트되지 않음). 가장 좋은 해결책은 당신이 결정하는 것입니다.

관련 문제