Makro-Gleichung

Hallo zusammen,

tut mir leid, dass ich ohne Test veröffentliche, also gehe ich nach

 

 

Dim swApp als SldWorks.SldWorks

Dim swModel As SldWorks.ModelDoc2

 

 

Unterverwaltung()

  assignmentPrincipalObjects

Verwaltung der unteren Höhe

  if test("D1@Esq1", "500") dann

    boolstatus = swModel.EditRebuild3()

  Oder

    MsgBox "Problem"

  Ende, wenn

 

"Breite...

"Tiefe...

"Die Dicke...

 

Ende Sub

 

Sub AssignmentPrincipalObjects() 'Kann in einem anderen Modul ohne PB platziert werden

  Legen Sie swApp = Application.SldWorks fest

  Festlegen von swModel = swApp.ActiveDoc

 'Set= .....

Ende Sub

 

Function Test(NomVar As String, ValVar As String) As Boolean 'Kann in einem anderen Modul ohne PB platziert werden

  Dim swEquationMgr als SldWorks.EquationMgr

  Dim vSplit als Variante

  Legen Sie swEquationMgr = swModel.GetEquationMgr fest.

  Test = Falsch

  Für i = 0 Bis swEquationMgr.GetCount - 1

    vSplit = Split(swEquationMgr.equation(i), "=")

    vSplit(0) = Ersetzen(vSplit(0), Chr(34), Leer)

    vSplit(0) = Ersetzen(vSplit(0), Chr(32), Leer)

    Wenn vSplit(0) = VarName, dann

      swEquationMgr.equation(i) = Ersetzen(swEquationMgr.equation(i), vSplit(1), ValVar)

      Test = Wahr

      Exit-Funktion

    Ende, wenn

  Weiter i

Ende-Funktion

 

Ich habe diesen Code gerade getestet und schnell überarbeitet, es liegt an dir, JB, ihn "auf deine eigene Art und Weise zu setzen".

Die Verwendung von Funktionen (hier Test)  mit übergebenden Argumenten (hier NomVar und ValVar) ermöglicht es Ihnen, Ihre Dinge in mehreren Modulen zu organisieren. Was das Untermenü mit dem Titel Verwaltung betrifft, so kann ich es in einem Modul Ihres Benutzerformulars sehen, zu sehen.

 

Grüße MC

Guten Abend allerseits,

 

Ich komme wieder auf den Satz "Bezüglich des Untertitels Verwaltung, ich kann es in einem Modul Ihres UserForm sehen, zu sehen." meines letzten Wortes. Sie sollten wissen, dass Ihr [UserForm1.TextBox2.Value] (der Wert des Name-Steuerelements 'TextBox2' des benutzerdefinierten Dialogfelds Name 'Userform1') keinen großen Bereich aufweist (siehe Bereich der API-Hilfe). Es ist nicht bekannt, ob Sie es aus Code aufrufen, der in einem anderen Modul platziert ist als dem, das Ihrem [UserForm1] zugeordnet ist. Nun, jetzt ist es der Fall für ein Makro in Word, aber ich habe nicht mit SW überprüft. Da es sich bei [UserForm1] und [TextBox2] um Standardnamen handelt, wäre es ratsam, sie beim Erstellen eines Dialogfelds sofort umzubenennen, z. B. [UserForm1] in [BDChoisirBackground] und [TextBox2] in [BottomHeight]. Ich weiß, es ist prickelnd, aber Ihr Code wird nur klarer sein.

 

Fröhlicher Prog

 

A+

 

MC

Grundsatz

 

Ist es normal, dass dieses Makro nur in einer Teiledatei und nicht in einem bearbeiteten Teil einer Baugruppe funktioniert?

 

Die Schleife wird nicht in einem bearbeiteten Stück ausgeführt:

Für i = 0 Bis swEquationMgr.GetCount - 1
    vSplit = Split(swEquationMgr.Equation(i), "=")
    vSplit(0) = Ersetzen(vSplit(0), Chr(34), Leer)
    vSplit(0) = Ersetzen(vSplit(0), Chr(32), Leer)
    Wenn vSplit(0) = VarName, dann
        swEquationMgr.Equation(i) = Ersetzen(swEquationMgr.Equation(i), vSplit(1), ValVar)
        Modif_equation = Wahr
        Exit-Funktion
    Ende, wenn
Weiter i

 

Vielen Dank