Ik heb een macro die oorspronkelijk perfect op zichzelf werkt, maar die ik graag wil verbeteren en combineren met een UserForm. En daar werkt het niet goed. De macro zou moeten worden uitgevoerd op de geselecteerde documenten in een ListBox van de UserForm, maar er gebeurt niets wanneer de knop Uitvoeren wordt ingedrukt. De koppeling tussen de UserForm en de macro lijkt niet correct te zijn gedaan.
Als iemand enig idee heeft wat de problemen zou kunnen veroorzaken, bedankt voor je hulp!
Om het oorspronkelijke verzoek toe te lichten: wijzig de eenheden en aangepaste eigenschappen van solidworks onderdelen, assemblage en tekening. Mogelijk meerdere tegelijk, maar mogelijk slechts één. Vandaar het idee van het gebruikersformulier met een lijst van componenten om te selecteren Configureer Geïmporteerde Components.swp (96 kB)
U kunt beginnen met het gebruik van Debug.Print-functies om de inhoud van uw variabelen bij elke stap voor en tijdens het indrukken van de knop te controleren. Dit zou het probleem snel moeten benadrukken.
Het probleem zit hem in de regels van het UserForm1-formulier.
' 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
inderdaad goed gezien. Ik heb de test gedaan, zelfs als de documenten goed uit de lijst komen, als ik een document doordeel dat niet het actieve document is, gebeurt er niets.
Wanneer ik het actieve document selecteer, wordt de macro goed gestart totdat deze op dit punt aankomt:
' Lus om elke eigenschap te controleren Voor elke propName In propNames
met een fout ‹ 13 ›
En inderdaad op mijn document, de eenheden zijn gewijzigd, maar de macro stopt en slaagt er niet in om de aangepaste eigenschappen te beheren. wat goed werkte door alleen de macro te starten zonder enige link naar het gebruikersformulier
Ik zal eerst de geschiedenis van het actieve document in meer detail bekijken