2016-10-24 2 views
0

Könnte mir bitte jemand sagen, wie ich die Quellformatierung für das Einfügen in meine Zielarbeitsmappe beibehalten kann? Der folgende Code überträgt Daten von einer Kalkulationstabelle zu einer anderen und entfernt dann doppelte Zeilen in der Zieltabelle, falls vorhanden. Vielen Dank!Preserve-Quellformatierung

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' ist die Syntax. –

+0

Schließen Sie die Quellarbeitsmappe nach dem Einfügen – Slai

+0

Skip Intro könnten Sie diese Codezeile in meinen Code einfügen, damit es funktioniert? Ich bin nicht sicher, wie man mit dieser Linie einbaut wkb.Sheets (1) .Paste Destination: = Sheets (1) .Range (Zellen (Erow, 1), Zellen (Erow, 15)) –

Antwort

0

Die spezielle Syntax zum Einfügen ist .PasteSpecial Paste:=xlPasteFormats.

Sie können dies implementieren, indem Sie den Code zu etwas entlang der Linien ändern:

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

aber ich bin immer noch nicht sicher, ob die oben arbeiten, weil Sie die Arbeitsmappe sind Schließen Sie die kopierten Daten enthält vor einfügen. Ich bin mir ziemlich sicher (ungetestet), dass Ihr Code funktioniert, wenn Sie die vorherige Arbeitsmappe nach einfügen. Die beste Lösung ist Ihre Entscheidung.