2017-03-18 3 views
0

Ist es möglich, die Excel-Dateien Seite an Seite zusammenzuführen. Angenommen habe ich zwei separate Excel-Dateien in Laufwerk C gespeichert, mit dem Namen A und B zum Beispiel Datei-A ist wie folgt:Möglichkeit, mehrere Excel-Dateien nebeneinander zu verschmelzen

BB \t LL \t KO \t PO 
 
A \t C \t D \t A 
 
A \t C \t D \t A 
 
A \t C \t D \t A 
 
A \t C \t D \t A

Datei B ist wie:

WW \t YY \t ZZ \t XX 
 
Q \t C \t D \t Z 
 
Q \t C \t D \t Z 
 
Q \t C \t D \t Z 
 
Q \t C \t D \t Z

Ich brauche dies:

BB \t LL \t KO \t PO \t WW \t YY \t ZZ \t XX 
 
A \t C \t D \t A \t Q \t C \t D \t Z 
 
A \t C \t D \t A \t Q \t C \t D \t Z 
 
A \t C \t D \t A \t Q \t C \t D \t Z 
 
A \t C \t D \t A \t Q \t C \t D \t Z

Dank

+0

Möchten Sie Datei B an Datei A anhängen oder eine neue Datei mit diesen beiden Dateien erstellen? Und was ist die Reichweite des Tisches? Beginnt es in A1-Zelle in jeder Datei? –

Antwort

0

ging ich davon aus, dass die Tabellen in Zelle A1 (die linke obere Zelle der Tabelle) beginnen und dass Sie 4x4-Tabellen haben (man kann leicht dieses Verhalten verallgemeinert) . Sie müssen diesen Code in einem Arbeitsblatt ausführen, in dem die Daten zusammengeführt werden sollen. Sie müssen auch die Pfade zu den Dateien im Code angeben und sicherstellen, dass die Namen der Blätter korrekt sind.

Sub merge() 
Dim actWb, wb As Workbook 
Dim i, j As Integer 
'set workbooks, so you can switch between them during the program 
Set actWb = Application.ActiveWorkbook 
'here you also open workbook you want to copy data from 
Set wb = Workbooks.Open("PATH TO THE FILE") 
'loop through the range you want to copy 
For i = 1 To 4 
    For j = 1 To 4 
     actWb.Sheets("Sheets1").Cells(i, j).Value =  wb.Sheets("Sheets1").Cells(i, j).Value 
    Next j 
Next i 
'close the workbook 
wb.Close 
'repeat above for the other workbook 
Set wb = Workbooks.Open("PATH TO THE OTHER FILE") 

For i = 1 To 4 
    For j = 1 To 4 
     actWb.Sheets("Sheets1").Cells(i, j + 4).Value =  wb.Sheets("Sheets1").Cells(i, j).Value 
    Next j 
Next i 
wb.Close 

End Sub 

Hope it :)

+0

Sie müssen den vollständigen Pfad in 'THE PATH TO THE FILE' kopieren. Die einfachste Möglichkeit, den gewünschten Pfad zu erhalten, besteht darin, Eigenschaften der Excel-Datei zu öffnen, den Pfad von dort zu kopieren und zusätzlich "\ filename/xlsx" einzufügen. –

+0

Ich habe diesen Fehler: actWb.Sheets ("Sheets1"). Zellen (i, j) .Value = wb.Sheets ("Sheets1"). Zellen (i, j) .Wert. Index außerhalb des Bereichs – user17

+0

Stellen Sie sicher, dass der Blattname korrekt ist. Dann probiere die erste Schleife für i = 1 bis 1 und für j = 1 bis 1. Wenn das funktioniert, kannst du damit spielen und die Bereiche ändern. Übrigens, es funktioniert auf meinem Computer. –

0

hilft Ihnen, eine Function, die Pflege Werte eines bestimmten Arbeitsblatt von einer bestimmten Arbeitsmappe zu speichern Zellen nimmt verwenden könnten in einer Variant Variable, wie die folgende:

Function GetWBValues(fullFileName As String, shtName As String, values As Variant) As Boolean 
    On Error GoTo ExitFunction 
    With Workbooks.Open(fullFileName).Worksheets(shtName) '<--| try opening passed file and accessing its passed sheet name 
     values = .UsedRange.Value 
     .Parent.Close False '<--| close just opened workbook without saving any changes 
    End With 
    GetWBValues = True '<--| set function return value to 'True' to signal calling sub that values has been successfully read 
ExitFunction: 
End Function 

durch einige "main" Aufruf Code ausgenutzt werden, wie folgt:

Option Explicit 

Sub merge() 
    Dim values As Variant 

    If GetWBValues("C:\Desktop\......\File1.xlsx", "Sheet1", values) Then 
     Cells.Resize(UBound(values, 1), UBound(values, 2)).Value = values 
    End If 

    If GetWBValues("C:\Desktop\......\File2.xlsx", "Sheet4", values) Then 
     With ActiveSheet.UsedRange 
      .Columns(.Columns.Count + 1).Resize(UBound(values, 1), UBound(values, 2)).Value = values 
     End With 
    End If 
End Sub 
+0

Vielen Dank User3598756- Ich habe verschiedene Excel-Dateien. funktioniert nicht für mich. Können Sie mehr helfen – user17

+0

Sie müssen so viele Details wie möglich zur Verfügung stellen und definieren, was _ "nicht funktioniert" _ bedeuten ... – user3598756

+0

Ich verwende Tabelle Tabelle 2. Wenn GetWBValues ​​("C: \ Desktop \ ...... \ File2.xlsx "," Sheet4 ", Werte). Sub oder Funktion nicht definiert. jede Hilfe uUser3598756 – user17

Verwandte Themen