Ich habe ein Makro, das ursprünglich alleine perfekt funktioniert, das ich aber gerne verbessern und mit einem UserForm kombinieren möchte. Und da funktioniert es nicht richtig. Das Makro sollte auf den ausgewählten Dokumenten in einem ListBox der UserForm ausgeführt werden, aber es passiert nichts, wenn die Schaltfläche Ausführen gedrückt wird. Die Verknüpfung zwischen dem UserForm und dem Makro scheint nicht korrekt ausgeführt zu sein.
Wenn jemand eine Idee hat, was Probleme verursachen könnte, danke für Ihre Hilfe!
Zur Erläuterung der ursprünglichen Anforderung: Ändern Sie die Einheiten und benutzerdefinierten Eigenschaften von SolidWorks Teilen, Baugruppen und Zeichnungen. Möglicherweise mehrere gleichzeitig, aber möglicherweise nur eines. Daher die Idee des Benutzerformulars mit einer Liste von Komponenten zur Auswahl Konfigurieren importierter Komponenten.swp (96 KB)
Sie können damit beginnen, die Debug.Print-Funktionen zu verwenden, um den Inhalt Ihrer Variablen bei jedem Schritt vor und während des Tastendrucks zu überprüfen. Dies sollte das Problem schnell verdeutlichen.
Das Problem liegt in diesen Zeilen des UserForm1-Formulars.
' Parcourir la collection des documents sélectionnés
For Each selectedDocTitle In selectedDocs
' Trouver le modèle actif correspondant
Set swModel = swApp.ActiveDoc
If InStr(1, swModel.GetTitle, selectedDocTitle, vbTextCompare) > 0 Then
' Exécuter Macro11 sur ce modèle
Macro11 swModel
End If
Next selectedDocTitle
In der Tat gut gesehen. Ich habe den Test auch dann gemacht, wenn die Dokumente in der Liste gut abschneiden, wenn ich ein Dokument abschnitte, das nicht das aktive ist, passiert nichts.
Wenn ich das aktive Dokument auswähle, wird das Makro gut gestartet, bis es zu diesem Punkt kommt:
' Schleife zur Überprüfung jeder Eigenschaft Für jeden propName In propNames
mit einem Fehler ‹ 13 ›
Und tatsächlich werden in meinem Dokument die Einheiten geändert, aber das Makro stoppt und schafft es nicht, die benutzerdefinierten Eigenschaften zu verwalten. was gut funktionierte, indem das Makro alleine ohne Link zum Benutzerformular gestartet wurde
Ich werde mich zunächst näher mit der Geschichte des aktiven Dokuments befassen