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.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Je nachdem, ob oder nicht haben Sie doppelte Werte, die entweder auf Platte, die ich mir vorstellen könnte ein paar Ideen, nicht mit SQL aber.
VARIABLEN FESTLEGEN
PHASE ONE: Kopieren Sie jeden Eintrag aus Tabelle1, um den Gegner, während grabbing Spiele von Tabelle2
PHASE ZWEI: Prüfung SourceSheet2 für Einträge, die NICHT auf Sheet1
EDIT: Tippfehler-Korrektur