Excel vba Zeilen vergleichen von zwei Arbeitsmappen und ersetzen

Hier ist ein wenig hintergrund auf, was ich versuche zu erreichen.

Ich habe eine excel-Datei, die enthält 10 Blatt und die einzelnen Blätter enthalten viele Zeilen von Daten. Diese Arbeitsmappe ist an verschiedene Menschen und jeder füllt in Ihren jeweiligen info,nur in den Spalten A,B. ich habe ein vba script, welches eine Schleife über alle ausgefüllten Arbeitsmappen, und prüft, welche Zeilen Zellen Ax, Bx gefüllt. Dann kopiert diese in eine neue Arbeitsmappe.

Also, was ich jetzt haben, ist:

  1. Eine Arbeitsmappe, die enthält nur die Zeilen der Spalten A,B besetzt worden.
  2. Eine Arbeitsmappe, die enthält alle unbesetzten Reihen. (der erste)

Was ich jetzt machen möchte, ist zu überprüfen, Zeile für Zeile, und finden Sie z.B. Zeile 1 der Tabelle1 der Arbeitsmappe Eine, minus den Spalten A,B in der Arbeitsmappe B Blatt 1. Nach der Zeile gefunden wird, muss ich ersetzen Arbeitsmappe B Zeile mit der von Arbeitsmappe Eine.

Sodass ich mit der linken, eine master-Arbeitsmappe (bisher Arbeitsmappe B), die sowohl gefüllt als auch ungefüllt Zeilen.

Ich hoffe, ich habe dies nicht zu kompliziert. Jeder Einblick auf was ist der beste Weg, dies zu erreichen, wäre geschätzt.

  • Any insight on what is the best way to achieve this would be appreciated. Was nach Ihnen ist der beste Weg? Sie müssen einige dran gedacht 🙂 Haben Sie versucht jeglichen code noch? Zeigen Sie uns den code, den Sie versucht und auf der Grundlage, dass können wir Ihnen sagen, wenn das der beste Weg ist oder ob es verbessert werden kann 😉
  • Gut, die Art und Weise, die ich im Sinn hatte, ist die einfachste, die ich denken konnte. Die Schleife durch die Zeilen der ersten Arbeitsmappe, finden Sie in der zweiten Arbeitsmappe, und ersetzen Sie Sie. Mit dieser sagte, ich weiß nicht, wie zu vergleichen reicht. workbook1.Tabelle1.range("C1:F1") = orkbook2.Tabelle1.range("C1:F1") ? Und dann ersetzen Sie die gesamte Zeile. Ich habe nicht irgendwelche code noch, da bin ich mir nicht sicher, ob dies der beste Weg. Es gibt viele Linien von Daten, und es könnte ein overkill auf diese Weise.
  • Ja Looping wird ein overkill. Sie möchten möglicherweise verwenden Sie .FIND Sehen, ob dies wird Ihnen den Einstieg. siddharthrout.wordpress.com/2011/07/14/...
  • Dieses sieht wie es wird gut funktionieren. Danke. Ich werde wieder mit Fortschritt, sobald ich habe einige 🙂
  • Nun, ich bin in der Lage zu geben .finden Sie ein range-Objekt zu suchen, aber die Ergebnisse sind nicht korrekt. Gibt es eine Anleitung, wie man verwenden .finden Sie suchen für eine Reihe? Von dem, was ich verstehe, aber ich muss zuerst konvertieren Sie die Auswahl in ein array und überprüfen Sie Zelle für Zelle. Wenn das wirklich der Fall es irgendwie Niederlagen der Zweck, nicht wahr?
  • Nein ist es nicht, als es keine Schleife die Zelle wie eine for-Schleife funktioniert. Wenn Sie hochladen können ein Beispiel-Arbeitsmappe, dann vielleicht kann ich Ihnen ein Beispiel zeigen?
  • Hm ok. Hier ist ein Beispiel-Arbeitsmappen a und b, die ich beschreibe, oben: mediafire.com/?a17og2o43fz7086
  • Du willst also die Kopie von WB-A bis WB-B, wenn eine übereinstimmung gefunden wird? Und ein match wäre, wenn Kol C-Kol L übereinstimmen, nehme ich an?
  • Ja genau. Dieses würde für das Beispiel, aber andere Blätter haben unterschiedliche Spalten-Bereich. Ich denke, es wird ok sein, wenn du mir ein Beispiel für C-L. ich werde in der Lage sein, um es herauszufinden, für den rest.
  • Ok, die Spalte C bis L ist einzigartig? In dem Sinne, das Werte nicht doppelt vorhanden sind, die in dieser Spalte?
  • Von den Daten die ich bisher gesammelt haben, gibt es keinen Hinweis, dass ein Wert in einer Spalte ist einzigartig. Das ist, warum ich brauchen, um mit allen Zellen, um sicherzustellen, dass Ersatz-richtig ist 🙁 Hinweis:ich bin in der Lage, diese Aufgabe manuell mithilfe der erweiterten Filter. Ich weiß nicht, ob es einfacher wäre zu implementieren, die in einem vba-Skript als .finden.
  • Buchung einen code, kurz verwendet .Finden

InformationsquelleAutor kokotas | 2012-08-01
Schreibe einen Kommentar