Hallo Dennis,
und willkommen im SolidWorks Brett auf CAD.de
Wenn ich deinen Screenshot richtig gesehen habe kommt ein Compile error, dass er ein Objekt oder Modul nicht findet, und zwar bei einem Befehl (hier Mid$).
Grund: auf den Rechnern, wo das nicht installiert ist, ist eine aktuelle Version von SolidWorks wie bei dir nicht drauf.
Lange Erklärung: du hast bei dir ein Makro entwickelt, u.U. über Extras/Makro/Neu oder durch Kopieren eines anderen Makros. SolidWorks trägt bei den Projktverweise ungefragt eine Referenz auf die SolidWorks 2006 Type Library (oder eben die der 2005, eben passend), oder du hast die, um das Early binding zu nutzen, selbst eingetragen.
Neben diesem Verweis sind noch andere Verweise standardmäßig aktiv, unter anderem der zu der VBA Runtime Library.
Nun zur eigentlichen Ursache: wenn in deinem Projekt irgendein Befehl aufgerufen wird, den der Interpreter so nicht kennt klappert er die Verweise ab. Der Befehl Mid$() kommt tatsächlich aus der VBA Runtime, also aus einem der Verweise. Das Dumme ist jetzt, dass dabei vom Interpreter direkt alle Verweise kontrolliert werden, ob die gültig sind. Wenn jetzt also z.B. ein Verweis auf die SolidWorks 2006 Type Library im Makro ist, an dem Rechner aber keine 2006 installiert ist, kommt genau diese Fehlermeldung, weil der VBA-Editor nicht alle Verweise findet!
Ob es daran liegt kannst du auf den Rechnern kontrollieren, wo es nicht läuft: öffne das makro im Editor und schau unter Extras/Verweise (im Englischen ist das Tools/References) nach, ob bei allen angehakten Verweisen auch alles okay ist oder irgendwo steht "nicht gefunden"
Ob die Abhilfe einfach ist kommt auf dein Makro an: wenn der Verweis tatsächlich nicht gebraucht wird einfach den Haken entfernen und gut ist. Brauchst du den Verweis (wenn er gebraucht wird lässt sich der Haken nicht wegnehmen) wird es schwieriger, du musst entweder diesen Verweise auf dem Zielrechner auch installieren oder dein Makro umbauen.
Ich persönlich bevorzuge den zweiten Weg, damit ich unabhängig von der SolidWorks Version meine Makros schreiben kann nutze ich das sogenannte Late Binding, also keine Verweise, und auch nur allgemeine Deklaration mit as Object
Ich hoffe, du konntest mein Beschreibung verstehen (schreiben scheint für dich ja kein großes Problem zu sein ), falls nicht schreib ich dir auch gerne noch ein Kurzfassung in englisch
Ciao,
Stefan
------------------
Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de
Member of CAD.de BOINC Team - | Seti@Home | CPDN | Einstein@Home
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP