Ich versuche, einen Prozess zu automatisieren, die gegen Berichte vom Typ Y. Überprüfung mehrerer Berichte vom Typ X beinhaltetExcel vlookup mit absoluten und relativen Referenzen sowie eine variable
Ich bin ein Makro zu schreiben irrelevante Daten zu löschen und Fügen Sie Daten aus Bericht X in Spalten A: O und Daten aus Bericht Y in Spalten AB: AF ein. Sowohl X als auch Y können variable Längen haben.
Ich möchte vlookup
verwenden, um Bericht Y (Spalte AB) für Übereinstimmungen in Spalte O zu überprüfen, und geben Sie entweder den entsprechenden Wert in der 5. Spalte von Bericht Y (Spalte AE) zurück, oder wenn der Wert in Spalte 0 nicht ist t gefunden, zurück "Missing!".
Wenn dies ein Einzelnutzung wäre, würde ich die Formel unten in Excel verwenden und automatisch füllen sie manuell:
=IFERROR(VLOOKUP(O2,AB$2:AE$60,2,FALSE),"MISSING!")
Aber ich tun möchte der Lage sein, dies zu tun, in Verbindung mit vielen anderen Aufgaben in VBA, wiederholt für viele Berichte variabler Länge. Hier ist, was ich für Code haben bisher:
Range("P2:P" & lastRowX).Formula = _
"=IFERROR(VLOOKUP(O2,AB$2:AE"&lastrowY&",2,FALSE),""MISSING!"")"
wo lastRowX eine Integer-Variable für die letzte Zeile von Daten aus Report X und lastRowY ist die letzte Zeile des Berichts Y. VBA wird nicht einmal lassen Sie mich es kompilieren , geben Sie mir "Kompilierfehler: Erwartet: Ende der Anweisung".
Dieser Code funktioniert, aber es erlaubt mir nicht, mit unterschiedlichen Längen von Y zu arbeiten:
Range("P2:P" & lastRowX).Formula = _
"=IFERROR(VLOOKUP(O2,AB$2:AE$60,2,FALSE),""MISSING!"")"
Irgendwelche Ideen, wo ich falsch gegangen sind oder, wie dies besser machen? Vielen Dank!
http://StackOverflow.com/a/42800024/4539709 – 0m3r