Edycja właściwości niestandardowych makra solidworks + Formularz użytkownika

Witam

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)

Witam

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.

3 polubienia

Witam

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

Makro działa tylko wtedy, gdy bieżący dokument jest wybrany z listy. Musisz więc przeglądać otwarte dokumenty, zobacz ten przykład API: Pobierz ścieżki otwartych dokumentów (VBA) - 2024 - Pomoc SOLIDWORKS API

Witam

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 :face_with_monocle:

Najpierw przyjrzę się bardziej szczegółowo historii aktywnego dokumentu

Błąd 13 to niezgodność typów. Więc musi być problem w poprzednich ustawieniach.