Hallo
Kleines Problem bei einem meiner Makros.
Ich habe ein Benutzerformular, das angezeigt wird und Sie auffordert, eine Flächen- oder Kantenauswahl vorzunehmen.
Die Makro-Code-Hand:
UserFormSelectFace.Show vbModeless
CoincidentsCtresWindows "SOLIDWORKS", UserFormSelectFace.Caption, True
Solange die Auswahl nicht getroffen wird, wird das Makro fortgesetzt. Auf dieser Seite keine Sorge
Das Problem kommt von der Abbrechen-Schaltfläche, denn wenn Sie sie drücken, verlassen Sie das Benutzerformular, aber das kontinuierliche Makro und Fehler (weil keine Auswahl getroffen wird)
Ich habe versucht, dies in das Benutzerformular einzufügen:
Private Sub BoutonCancel_Click()
Msgbox "TEST"
End
End Sub
Aber wenn Sie das Abbruchkreuz drücken, das gleiche Ergebnis wie zuvor (keine msgbox " TEST " und das Makro wird fortgesetzt und Fehler.)
Haben Sie eine Idee, was der Grund für diesen Fehler ist? Ich verstehe nicht, wie man mit dieser Abbrechen-Schaltfläche ein Ereignis auslöst.
Hallo
Normalerweise wundere ich mich, wenn es keine Ausblenden-Funktion des Benutzerformulars gibt, das Drücken der Abbrechen-Taste sollte durch die msgbox gehen und das Formular angezeigt lassen.
Auf der anderen Seite, wenn Sie sagen, dass das Makro fortgesetzt wird, was genau macht es mit dem angezeigten Formular? Vielleicht kommt es von dort
@Cyril habe ich auch eine
Unload UserFormSelectFace
ein bisschen weiter unten in meinem Code, sobald die Auswahl überprüft ist. Das hatte ich vergessen!
Auf der anderen Seite, wenn man dies in das Benutzerformular einfügt, scheint es die Aufgabe zu erfüllen:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
MsgBox "Macro interrompue"
End
End If
' If CloseMode = vbFormControlMenu Then Cancel = 1
End Sub
QueryClose ist der Druck auf das Kreuz (Sie können sogar den Verschluss hemmen, um Sie zu zwingen, die Tasten OK und Abbrechen zu durchlaufen).
Ja, das habe ich mit dem Code gesehen, den ich zurückbekommen habe.
Ich kommentierte die Zeile:
If CloseMode = vbFormControlMenu Then Cancel = 1
Was die Abbrechen-Taste effektiv blockierte.
Und dann habe ich es so geändert, dass es meine Warnmeldung und das Ende setzt.
Soweit ich weiß, funktioniert das BoutonCancel_Click () nicht in Excel (im Gegensatz zu Excel)
Es muss im Gegensatz zu Excel in SW sein
Für SW benötigen Sie einen Formular-Button, der abbricht und eine Verarbeitung hinzufügt.
Ja, das ist richtig, in SW im Gegensatz zu Excel!
Das Problem ist, dass einige Leute dieses Kreuz gedrückt haben, um das Makro zu verlassen, und dass der Code nicht unterbrochen hat und nach einem oder mehreren Fehlern in den Debug-Modus gegangen ist, also hat er mich angerufen, um herauszufinden, warum!
Jetzt sollte das mein Problem lösen!
1 „Gefällt mir“