Mam makro, które oryginalnie działa doskonale samo w sobie, ale chciałbym je ulepszyć i połączyć z UserForm. A tam nie działa poprawnie. Makro powinno być uruchamiane na wybranych dokumentach w jednym ListBox z formularzy UserForm, ale nic się nie dzieje po naciśnięciu przycisku uruchom. Wydaje się, że połączenie między formularzem użytkownika a makrem nie zostało wykonane poprawnie.
Jeśli ktoś ma jakiś pomysł, co może powodować problemy, dzięki za pomoc!
Aby wyjaśnić początkowe żądanie: Zmodyfikuj jednostki i dostosowane właściwości części, złożenia i rysunku Solidworks. Potencjalnie kilka na raz, ale potencjalnie tylko jeden. Stąd pomysł na formularz użytkownika z listą komponentów do wyboru Konfiguracja zaimportowanych składników.swp (96 KB)
Możesz zacząć od użycia funkcji Debug.Print, aby sprawdzić zawartość zmiennych na każdym kroku przed naciśnięciem przycisku i w jego trakcie. To powinno szybko uwypuklić problem.
Problem tkwi w tych wierszach formularza UserForm1.
' 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
rzeczywiście dobrze widziane. Zrobiłem test nawet jeśli dokumenty wypadają dobrze na liście, jeśli przeciem dokument, który nie jest aktywny, nic się nie dzieje.
Po wybraniu aktywnego dokumentu makro uruchamia się dobrze, dopóki nie dojdzie do tego punktu:
' Pętla do sprawdzania każdej właściwości Dla każdej nazwy propName w propNames
z błędem ‹ 13 ›
I rzeczywiście, w moim dokumencie jednostki są modyfikowane, ale makro zatrzymuje się i nie radzi sobie z zarządzaniem niestandardowymi właściwościami. który działał dobrze poprzez uruchomienie samego makra bez żadnego linku do formularza użytkownika
Najpierw przyjrzę się bardziej szczegółowo historii aktywnego dokumentu