sonnyhh
Goto Top

VBA - "Objekt unterstützt diese Eigenschaft oder Methode nicht"

Hallo @all

Ich habe folgendes Problem mit einem Word VBA Code. Es erscheint die Fehlermeldung "Objekt unterstützt diese Eigenschaft oder Methode nicht".

Grundsätzlich ist mir dieser Fehler geläufig. In diesem Fall gelangt man allerdings nicht in den Source Code, so dass nicht ersichtlich ist, bei welchem Befehl der Fehler genau entsteht.

Was mich aber viel mehr verwundert, ist die Tatsache, dass der Code auf fast allen Rechnern fehlerfrei läuft. Die betroffenen Rechner sind mit dem selben Image aufgesetzt, haben identische Windows 10 Update Stände und alle die selben Office Versionen (2013). Auch das neu aufsetzen eines betroffenen Rechners hat nichts gebracht.

Wie kann es sein, dass bei identischen Rechnern der Fehler mal auftritt und bei anderen nicht?

Viele Grüße
Sonny

Content-Key: 667485

Url: https://administrator.de/contentid/667485

Printed on: April 16, 2024 at 14:04 o'clock

Member: colinardo
colinardo Jun 10, 2021 updated at 19:42:43 (UTC)
Goto Top
Servus.
Zitat von @SonnyHH:
Ich habe folgendes Problem mit einem Word VBA Code. Es erscheint die Fehlermeldung "Objekt unterstützt diese Eigenschaft oder Methode nicht".
Oha da hat der Entwickler keine Fehler abgefangen (On Error Goto .../ If not xxx ist nothing / etc.).
Grundsätzlich ist mir dieser Fehler geläufig. In diesem Fall gelangt man allerdings nicht in den Source Code, so dass nicht ersichtlich ist, bei welchem Befehl der Fehler genau entsteht.
Dann berichte das dem Entwickler, der kann das fixen.
Was mich aber viel mehr verwundert, ist die Tatsache, dass der Code auf fast allen Rechnern fehlerfrei läuft. Die betroffenen Rechner sind mit dem selben Image aufgesetzt, haben identische Windows 10 Update Stände und alle die selben Office Versionen (2013). Auch das neu aufsetzen eines betroffenen Rechners hat nichts gebracht.

Wie kann es sein, dass bei identischen Rechnern der Fehler mal auftritt und bei anderen nicht?
Am Code bzw. an den Daten die der Code verarbeiten muss, der wird ja vermutlich nicht überall die selben Daten verarbeiten müssen.
An COM- oder ActiveX-Objekten /Datenbanktreibern die nicht vorhanden sind oder in einer anderen Version oder Bitness vorliegen, an korrupten oder fehlenden ODBC Einträgen usw. und sofort, da könnte man ewig so weiter machen.

Verständlicherweise können wir hier ohne vorliegenden Code natürlich auf jede Menge tippen. Aber letztendlich bringt da effektiv nur was, dem Entwickler auf die Finger zu klopfen und ihn das optimalerweise am Live-Objekt debuggen zu lassen, oder dir eine Version bereitzustellen die dem Entwickler ein Log mit betroffener Codezeile gibt.

Grüße Uwe
Member: GrueneSosseMitSpeck
GrueneSosseMitSpeck Jun 10, 2021 at 16:37:04 (UTC)
Goto Top
Erfahrungsgemäß fehlt in der Umgebung was, mit sowas hab ich fast wöchentlich zu tun.

dass der Code auf fast allen Rechnern fehlerfrei läuft

IT ist schon seit zig Jahren nichtdeterministisch.

"unterstützt die Methode nicht"
bedeutet erstmal daß ein Namespace oder eine Methode innerhalb eines Namespaces nicht da ist.
Und das kann passieren... wenn z.B. was mit den Manifesten in Office durcheinander ist, oder unvollständig installiert ist.

Da der TO sich über den Code ausschweigt... hört auch meine Hilfe hier auf.

Bekannte Fehler:
createobject mit fso oder cdo geht nicht (gibt GPOs bzw. Registrykeys die das deaktivieren können)
createobject mit powerpoint.application geht nicht: Powerpoint nicht installiert (gehört bei bestimmten Office Versionen halt nicht dazu)
Automation error (8-stelliger code) : googeln
Was office 2016 und 2019 oft hat... fehlende OLEDB Treiber im 32 Bit Bereich. Hier muß man das database access driver runtime instllieren. Das sieht man übrigens wenn man Debugview mitlaufen läßt.
und zuguterletzt: vielleicht hat ein User die "trusted zones" verfummelt. Kann man aber zurücksetzen, gibt häufig Streß damit daß in einem Word Dokument mit einem Male die Makros nicht mehr laufen...

p.s.
was mir noch so einfällt: ich mußte mal ein Excel-Automatisiserungsskript debuggen und aus unerfindlichen Gründen wird auf EINIGEN Rechnern kein on error goto gemacht wenn eine Methode nicht da ist, stattdessen steigt VBA mit einem Runtime Error aus. Aber für on error goto gibts shcon seit 20 JArhen was auf die Finger, weil man sowas gefälligst mit if not xxxx is nothing then else zu prüfen hat, z.B. bei inexistenten Items in Collections.
Member: colinardo
colinardo Jun 10, 2021 updated at 20:06:49 (UTC)
Goto Top
Zitat von @GrueneSosseMitSpeck:

Aber für on error goto gibts shcon seit 20 JArhen was auf die Finger,
Bei einigen Methoden in Excel und Word & Co. geht es ohne oft nur mit ehlend langsamer Alternative. Aber bevor ich ein Skript einfach so nichtssagend gegen die Wand fahren lassen gebe ich lieber dem User eine verständliche Fehlermeldung bzw. schreibe das ganze dann in ein Log mit Zeilennummer & Co., denn Ausnahmen können auch auch bei noch
so penibel geschriebenem Code entstehen.

Aber naja VBA wird wohl irgendwann das selbe Schicksal erleiden was der Batch mit der Powershell wiederfährt.
Member: StefanKittel
StefanKittel Jun 11, 2021 at 05:24:45 (UTC)
Goto Top
Moin,

gute Software besteht:
- zu 34% aus Code
- zu 33% aus Fehlerbehandlung
- zu 33% aus Dokumentation

schlechte Software besteht:
- zu 99% aus Code
- zu 1% aus Fehlerbehandlung
- zu 0% aus Dokumentation

Stefan