Cells.Find - Variable funktioniert nicht
Hallo.. beschäftige mich erst seit kurzem mit Excel Makros und glaube die Frage ist ziemlich amateurhaft aber macht ja nix ;)
folgendes will ich tun:
Bezeichnung die in Datei 1 stehen in Datei 2 suchen. Danach die Spalte mit den Werten unter der Bezeichnung in Datei 2 stehen kopieren. Die kopierten Werte in Datei 1 unter der Bezeichnung einfügen. Das mit 9 verschiedenen Bezeichnungen .. deshalb wollte ich das mit einer Schleife machen. Einzeln funktionierts .. aber in der schleife nicht.
Da ich das ganze für verschiedene Dateien gleichermaßen funktioniern soll benutz ich die Find.Cell funktion.
Hier ein Code-Ausschnitt:
Dim i As Byte
' Festsetzen der bezeichnungen
Set A1 = Range("A1")
Set A2 = Range("B1")
Set A3 = Range("C1")
Set A4 = Range("D1")
Set A5 = Range("E1")
Set A6 = Range("F1")
Set A7 = Range("G1")
Set A8 = Range("H1")
Set A9 = Range("I1")
For i = 1 To 9
'suchen der Bezeichnung in Datendatei
Workbooks.Open Filename:="C:\Test\Unit_13\Daten\2007-11-28_103121_ludwin_ludwig.xls"
Cells.Find(What:=A & i, After:=ActiveCell, LookIn:=xlFormulas _
, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
'selektieren und kopieren der Werte
ActiveCell.Offset(1, 0).Range("A3").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
'suchen der Bezeichnung in Auswertungsdatei
Windows("Mappe2.xls").Activate
Cells.Find(What:=A & i, After:=ActiveCell, LookIn:=xlFormulas _
, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
'einfügen der Werte
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveSheet.Paste
Selection.End(xlDown).Select
Next i
Das Problem muss beim Cells.Find Befehl liegen. Denke der Wert A & i stimmt nich so ganz. Schonmal vielen dank
Gruß Julian
Antwort schreiben
Antwort 1 von derlistigelurch vom 17.01.2020, 10:52 Options
Wär nett wenn sich jemand erbarmen würde .. ;/
Antwort 2 von Saarbauer vom 17.01.2020, 11:34 Options
hallo,
leider habe ich mit der kombination noch nicht gearbeitet
Zitat:
Cells.Find(What:=A & i, After:=ActiveCell, LookIn:=xlFormulas _
, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
aber könnte es sein, dass es so sein müsste
Cells.Find(What:=
"A" & i, After:=ActiveCell, LookIn:=xlFormulas _
, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Gruß
Helmut
Antwort 3 von achim_13086 vom 17.01.2020, 11:37 Options
Guten Tag Julian,
versuche einmal in der Formel anstelle von " What:=A & i " folgende Änderung " What:=("A & i") ".
In deiner Scheibweise ist " A " eine Variable und " i " sowieso.
Nimm für A = 100 und für i = 50, dann entsteht als Ergebnis 10050.
Ich hoffe, mein Denkanstoß bringt Dich auf die richtige Spur.
Gruß
Joachim