2016-04-30 32 views
0

Ich habe versucht, diese Sache für eine Weile zu tun, aber ich war nicht in der Lage. Ich würde normalerweise mehr usw. suchen, aber ich bin nicht sehr vertraut mit VBA (nur C++ und Java).Kopieren von Daten aus einem externen Arbeitsblatt zu einem anderen

Ich habe eine Excel-Datei (Arbeitsmappe) mit mehreren Blättern, die alle Daten enthalten (Quelle). Ich habe eine andere Excel-Datei, die wieder mehrere Arbeitsblätter enthält, die nur die Überschriften (Target) enthalten.

Was ich tun möchte, ist ein Code, der an die Zielarbeitsmappe geht und die Überschrift übernimmt, geht dann zur Quellarbeitsmappe und durchläuft alle Arbeitsblätter, bis diese Überschrift gefunden wird und kopiert dann die Daten in die Zielarbeitsmappe.

Beachten Sie, dass sich alle Überschriften in der Quelldatei in allen Arbeitsblättern in derselben Zeile befinden.

enter image description here

+0

Sie erhalten keinen genauen Code für Ihren Bedarf. Aber es gibt viele großartige Beispiele, die helfen werden. Was Sie tun sollten, ist Ihr Problem in kleinere zu brechen, z. B. wie man über Arbeitsblatt, wie Arbeitsblattname, etc usw. ... und versuchen zu arbeiten und zu bauen, was Sie brauchen. Wenn Sie auf irgendeinen Fehler stoßen, ist SO immer da :-) – newguy

+0

Ich lese gerade, aber es ist schwer so tief ohne eine richtige Basis zu starten, aber danke für den Rat. –

+0

Das ist eigentlich eine ziemlich gewöhnliche Sache. Sie sollten in der Lage sein, Code dafür leicht zu finden. –

Antwort

1

Dieser Code Ihr Problem lösen sollte;

Sub Read_External_Workbook() 

    '''''Define Object for Target Workbook 
    Dim Target_Workbook As Workbook 
    Dim Source_Workbook As Workbook 
    Dim Target_Path As String 

    '''''Assign the Workbook File Name along with its Path 
    '''''Change path of the Target File name 
    Target_Path = "D:\Sample.xlsx" 
    Set Target_Workbook = Workbooks.Open(Target_Path) 
    Set Source_Workbook = ThisWorkbook 

    '''''With Target_Workbook object now, it is possible to pull any data from it 
    '''''Read Data from Target File - Assuming that your headers's locations are absolute. 
    Target_Data = Target_Workbook.Sheets(1).Cells(1, 1) 
    Source_Workbook.Sheets(1).Cells(1, 1) = Target_Data 

    '''''Update Target File - 
    Source_data = Source_Workbook.Sheets(1).Cells(3, 1) 
    Target_Workbook.Sheets(1).Cells(2, 1) = Source_data 

    '''''Close Target Workbook 
    Source_Workbook.Save 
    Target_Workbook.Save 
    Target_Workbook.Close False 

    '''''Process Completed 
    MsgBox "Task Completed" 

End Sub 
+0

Meine Daten müssen nicht in der gleichen Reihenfolge sein? Ich möchte den Code zu loopen durch das source_workbook .. zum Beispiel könnte die erste Spalte, die ich brauche, im ersten Arbeitsblatt sein, während die zweite Spalte im dritten Arbeitsblatt sein könnte? –

Verwandte Themen