Kombinieren von zwei Tabellen in Excel mit VBA

Mithilfe von Excel VBA ich möchte in der Lage sein, zum kombinieren von zwei Tabellen in excel, die mit einem gemeinsamen Schlüssel. Ich habe vorgeschlagen, ADODB als eine Methode,bin aber offen für jede andere effizientere/elegante Methoden. Bitte siehe unten für ein minimal-Beispiel:

Habe ich die unten zu beginnen mit...

Tabelle1

    A     B       C
 1 type year1   year2
 2 aaa  100     110
 3 bbb  220     240
 4 ccc  304     200
 5 ddd  20      30
 6 eee  440     20

Tabelle2

    A     B       C
 1 type year1   year2
 2 bbb  10      76
 3 ccc  44      39
 4 ddd  50      29
 5 eee  22      23
 6 fff  45      55

Möchte und kombinieren es so, dass ich habe Folgendes als Ergebnis:

Tabelle3

    A     B       C       D       E
 1 type year1   year2   year1   year2
 2 aaa  100      110      0       0
 3 bbb  220      240      10      76
 4 ccc  304      200      44      39
 5 ddd  20       30       50      29
 6 eee  440      20       22      23
 7 fff  0        0        45      55

Getan haben, ein bisschen googeln und SQL-outer-joins scheint nah, aber nicht wissen, wie es zu implementieren.

Unten ist der code, der verwendet wird, um zu versuchen und zu implementieren, ist es so weit...

Option Explicit



Sub JoinTables()

 Dim cn As ADODB.Connection
 Set cn = New ADODB.Connection


 With cn
     .Provider = "Microsoft.Jet.OLEDB.4.0"
     .ConnectionString = "Data Source=" & ThisWorkbook.FullName & ";" & _
         "Extended Properties=Excel 8.0;"
     .Open
 End With

 Dim rs As ADODB.Recordset
 Set rs = New ADODB.Recordset

 rs.Open "SELECT * FROM [Sheet1$] OUTER JOIN [Sheet2$] ON [Sheet1$].[type] = " & _
     "[Sheet2$].[type]", cn

 With Worksheets("Sheet3")
     .Cells(2, 1).CopyFromRecordset rs
 End With

 rs.Close
 cn.Close

 End Sub
  • Code versucht nun Hinzugefügt...
  • schön! nun, das ist eine bessere Frage.
  • sagen Sie was - full outer join ist nicht unterstützt durch ADODB in VBA-ich denke, also, warum nicht Sie einen Blick in HIER und vielleicht können Sie kommen mit einer Lösung für sich?
  • Auch alternativen
  • superuser.com/questions/537339/... die Ihnen helfen könnten.
InformationsquelleAutor h.l.m | 2014-10-31
Schreibe einen Kommentar