2012-03-29 13 views
1

Ich habe Arbeitsmappe zu kopieren, source.xlsm, Arbeitsblatt „test1“ Spalte A6: A20, die ich in einer anderen Arbeitsmappe auf meinem Verzeichnis C kopieren müssen: ... benannter dest .xlsx, Arbeitsblatt "Assets", Spalte "I". Ich muss in der Lage sein, die Daten zu kopieren und in der Lage zu sein, der Spalte hinzuzufügen, ohne die vorherigen kopierten Daten zu überschreiben. Jede Hilfe wäre ein Lebensretter.Excel VBA Spalt vorhandene Arbeitsmappe

Sub Align() 
    Dim TargetSh As String 

    TargetSh = "Assets" 

    For Each WSheet In Application.Worksheets 

     If WSheet.Name <> TargetSh Then 
      WSheet.Select 
      Range("A6:A20").Select 
      Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select 
      Selection.Copy 
      Sheets(TargetSh).Select 
      lastRow = Range("I65532").End(xlUp).Row 
      Cells(lastRow + 1, 1).Select 
      ActiveSheet.Paste 
     End If 
    Next WSheet 
End Sub 
+0

'Jede Hilfe würde auf jeden Fall ein Leben saver' sein :) Können Sie uns zeigen, was haben Sie versucht? –

+0

Wie formatiere ich den Code, um nicht gebündelt zu werden? – lPaclMan

+0

können Sie mit den 'und' die Codes umgeben. Wenn sie immer noch nicht im richtigen Format sind, wird einer von uns es für Sie bearbeiten :) –

Antwort

1

Ist das, was Sie versuchen? Ich habe nicht getestet es aber ich denke, es sollte funktionieren. Lassen Sie es mich wissen, wenn Sie Fehler bekommen.

Sub Sample_Copy() 
    Dim wb As Workbook, wbTemp As Workbook 
    Dim ws As Worksheet, wsTemp As Worksheet 
    Dim lastRow As Long 

    Set wb = ThisWorkbook 
    Set ws = wb.Sheets("test1") 

    '~~> Change path as applicable 
    Set wbTemp = Workbooks.Open("C:\dest.xlsx") 
    Set wsTemp = wbTemp.Sheets("Assets") 

    lastRow = wsTemp.Range("I" & Rows.Count).End(xlUp).Row + 1 

    ws.Range("A6:A20").Copy wsTemp.Range("I" & lastRow) 

    Application.CutCopyMode = False 

    '~~> Cleanup 
    wbTemp.Close savechanges:=True 
    Set wb = Nothing: Set wbTemp = Nothing 
    Set ws = Nothing: Set wsTemp = Nothing 
End Sub 

HTH

Sid

+0

Absolut meisterhaft. Es ist erstaunlich, wie offensichtlich es ist, wenn man es so gut geschrieben sieht. – lPaclMan

+0

tsk ts ... du Schmeichler! LOL. Spaß beiseite. Froh, mir zu helfen :) –

Verwandte Themen