VBA: Werte Sheet 1 ans Ende Sheet 2 anhängen - ID
31.03.2015 09:53:12
Andreas
bei den meisten Problemen mit VBA konnte ich hier im Forum Hilfen und Anleitungen finden. Bei meinem jetzigen Problem bin ich aber auf eure Hilfe angewiesen. Andere Posts zu diesem Thema konnten mir nicht weiterhelfen - seit Tagen bin ich auf der Suche nach einer Lösung...
Ich habe zwei Tabellen jeweils mit Zeilenüberschriften wie folgt:
Tabelle 1: UserMeta
A | B | C | D | ... | Z |
1 | Wert | Wert | Wert | Wert | Wert |
2 | Wert | Wert | Wert | Wert | Wert |
3 | Wert | Wert | Wert | Wert | Wert |
Tabelle 2: Users
A | B |
1 | Wert |
2 | Wert |
3 | Wert |
Analog zu den Tabellennamen gibt es auch zwei Worksheets mit denselben Namen.
Ich möchte nun die Werte aus Sheets("Users") Spalte "B" in das Blatt Sheets("UsersMeta") mittels VBA übertragen. Verknüpft werden soll dabei über die jeweilige ID, welche in jeder der zwei Tabellen nur jeweils einmal vorkommt.
Mein bisheriger Ansatz ist eher bescheiden, wenngleich er funktioniert:
Bislang importiere ich beide Tabellen aus einer mysql-Datenbank mittels VBA, sortiere beide Tabellen aufsteigend nach der ID und kopiere anschließend die gesamte Spalte B aus dem Sheet Users in die Spalte Z des Sheet UsersMeta mit diesem Script:
Sub email_adressen_anhaengen()
' Sortiert aufsteigend ID
Worksheets("UserMeta").Range("A1").Sort _
Key1:=Worksheets("UserMeta").Columns("A"), _
Header:=xlYes
Worksheets("Users").Range("A1").Sort _
Key1:=Worksheets("Users").Columns("A"), _
Header:=xlYes
' Kopiert E-Mail-Adresse aus db-users in db_usermeta
Sheets("Users").Activate
Sheets("Users").Columns("B:B").Copy
'Activate the destination worksheet
Sheets("UserMeta").Activate
'Select the target range
Range("Z:Z").Select
'Paste in the target destination
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub
Das ist aber eine unschöne Variante und zudem fehleranfällig.Ich freue mich über Eure Hile und sage schon einmal Danke!
Andreas