Laufzeitfehler '1004' Nicht in der Lage das Match bekommen propertyof das WorksheetFunction-Klasse
In meinem makro habe ich folgenden code :
i = Application.WorksheetFunction.Match(str_accrual, Range(Selection, Selection.End(xlToRight)), 0)
wo 'str_accrual' ist ein string eingefangen früher auf diese Linie, und der Bereich ausgewählt ist, in einer einzigen Zeile sagen von "A1" bis "BH1" und das Ergebnis wird eine Zahl, die die position der Zeichenfolge in diesem Bereich ausgewählt.
Wenn ich das makro auszuführen, bekomme ich die Fehlermeldung:
Run-time error '1004' Nicht in der Lage das Match bekommen propertyof die WorksheetFunction Klasse
Aber wenn ich das makro Zeile für Zeile mit (F8) - Taste, die ich nicht bekomme diese Fehlermeldung, aber wenn ich das makro ausführen, ständig bekomme ich die Fehlermeldung. Wieder, wenn der Abbruch das makro und führen Sie es erneut die Fehler nicht erscheinen.
- Die
find
range-Methode so gut funktioniert. msdn.microsoft.com/en-us/library/office/ff839746.aspx - Dies kann oder maynot helfen, Ihre Antwort, aber Sie versuchen, Sortieren Sie Ihre Daten bevor Sie Ihr makro. Was ich bemerkt habe, während dies zu tun ist, wenn ich habe 2 Fehler zurück, um diese Fehlermeldung erscheint. Etwas über mehrere Fehler, die nicht zulässt, dass Sie den code, um vorwärts zu bewegen. In meinem Fall bin ich in der Lage zu gelten, eine Art, die zum überwiegenden Teil wird dieses problem beseitigt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich versuchte mehrere Male. Es scheint, dass, wenn keine übereinstimmung vorhanden ist, wird der Ausdruck prompt diese Fehlermeldung
wenn Sie wollen, um den Fehler abzufangen, verwenden Sie
Application.Match
stattDann können Sie wickeln Sie es mit
isError
Tonnen Beiträge über diesen Fehler aber keine Lösung soweit ich die Beiträge gelesen. Es scheint, dass für verschiedene worksheet-Funktionen zu arbeiten, das Arbeitsblatt muss aktiv/sichtbar. (Das ist zumindest meine neuste Erkenntnis nach meinem Match() wurde nach dem Zufallsprinzip arbeiten für fadenscheinigen Gründen.)
Hoffte ich, dass das Rätsel gelöst wurde, obwohl die Aktivierung Arbeitsblätter für diese Art der Suchaktion war ein Schmerz und kostet ein paar CPU-Zyklen.
So, ich spielte mit syntax-Variationen, und es stellte sich heraus, dass der code zu arbeiten begonnen, nachdem ich entfernt den Unterstrich Zeilenumbrüche, unabhängig von dem Arbeitsblatt angezeigt wird. <- gut, für einige Grund, den ich noch hatte, um das Arbeitsblatt aktivieren 🙁
'funktioniert nicht
'funktioniert (die Zeilenumbrüche entfernt mit Unterstrich für readibility) <- diese syntax aufgehört zu arbeiten später kein Weg an der Aktivierung der Tabelle 🙁
Am Ende bin ich frustriert, läuft in mehr Ausführungen dieses Geheimnis und verbringen viel Zeit wieder.
cheers
Wurde ich immer diese Fehlermeldung zeitweise. Stellt sich heraus, es passiert, wenn ich hatte ein anderes worksheet aktiv ist.
Als die Dokumente für Angebot sagen,
So, um den Fehler zu beheben, fügen Sie einen qualifier:
Das ist, was Sie erhalten, wenn Sie ÜBEREINSTIMMEN, schlägt fehl, um den Wert zu finden.
Versuchen Sie dies:
Update
Hier besseren code, die sich nicht auf
Selection
nur als ein Mittel von user-input für die Definition der Reichweite gesucht werden._WorksheetFunction.Match
. DaApplication.Match
erlaubt zu sein eingewickelt in derIsError
Funktion die fallen Fehler, die andernfalls erhoben werden, die von derWorksheetFunction.Match
. Wie die anderen gefragt, es ist möglicherweise, Sie verändert dieSelection
(Sie sollten sich nicht auf dieses Konstrukt, außer zuweilen als eine Möglichkeit, Benutzer-Eingabe, aber nie als variable/Objekt). Oder, vielleicht, wenn Sie diese aufrufen-makro mit mehreren Arbeitsmappen öffnen, wird ein Fehler passieren könnte, basiert auf dem Buch ist "Aktiv".Then
in der ersten Zeile.Mir "Wenn Nicht ISTFEHLER" und die Fehler gezeigt hätten. Um zu verhindern, dass die Fehler, fügen Sie die folgende Zeile als auch:
On Local Error Resume Next