Frage

Ich versuche, ein Makro zu erstellen, das zwei benutzerfünfzige Arbeitsblätter vergleicht, dann bewegt sich die Unterschiede auf unterschiedliche Blätter, je nachdem, warum es anders ist.

Der Code fragt zuerst nach Eingabe der neuesten Daten und öffnet dieses Blatt. Dann bittet es, den Ort der älteren Daten zu vergleichen, mit dem sie mit dem Vergleich zu vergleichen ist, sie jedoch nicht öffnet. Es fügt die notwendigen Blätter hinzu, in die sie kopiert werden soll.

Es geht dann eine Säulenzelle nach unten nach unten, indem sie nach der passenden Serie des zweiten Arbeitsbuchs sucht (dies ist hauptsächlich darin, sicherzustellen, dass der Vergleich der korrekten Daten in der Rechtssache der Fall ist). Sobald es die passende Serie gefunden hat, vergleicht er die zweite Serie für beide Eingaben und je nachdem, ob es sich um einen anderen oder neuen Eingang in eines der Blätter befindet.

Das Hauptproblem, das ich habe, ist mit VLOOKUP. Es hat mehrere Fehler 424, 1004 und Kompilieren von Expressionsfehlern. Ich brauche ein wenig Leitfaden, warum es diese Probleme hat. Ich habe viel gesucht und fand, dass ich mich sehr bemüht habe, Klammern zu verweisen, um eine Datei zu verweisen, aber wenn ich diese Formate genau befolgte, wird der Ausdrucksfehler genau auswirkt.

Jeder Rat wird geschätzt.

generasacodicetagpre.

War es hilfreich?

Lösung

have brackets to reference a file Sie können diesen Ansatz nur verwenden, wenn Sie eine Formel einer Zelle oder einem Bereich zuweisen.

Beispiel:

generasacodicetagpre.

Wenn Sie jedoch VBA-Arbeitsblattfunktion verwenden verwenden, müssen Sie irgendwie auf die Datenbank oder Tabelle zugreifen, in der Sie Daten von der Laufzeit abrufen. Das heißt, Sie müssen Objekte auf den Argumenten bestehen und keine Zeichenfolgen, wie Sie oben tun.
So etwas wie:

generasacodicetagpre.

Ich habe gerade den Teil zur Verfügung gestellt, in dem Sie die WorksheetFunction von vlookup verwenden. Sie können den Rest Ihres Codes vorher verwenden. Grundsätzlich über dem Code:

  • weist den Quelltabell auf Variable zu und übergeben Sie ihn direkt an vlookup -argumente.
  • verwendet vlookup über VBA-Arbeitsblattfunktion , um Daten abzurufen.

Nehmen Sie die Note der OERN ( auf Fehler fort, die nächste ) routine und oEG0 ( auf Fehler goto 0 ).
In VBA gibt eine -Stellenfunktion einen Fehler zurück (z. B. # n / a für vlookup), fünft der Code heraus und stoppt die Ausführung. Es gibt keine ifError wie wir in Arbeitsblattformeln haben. Sie müssen also mit Fehlerbehandlungsroutinen umgehen.

beachten Sie auch, dass es besser ist, die Objekte, an denen Sie arbeiten, besser zu qualifizieren.
Dies ist ein guter Ort, um Ihre Codes zu optimieren und Laufzeit zu vermeiden Fehler.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top