Ich bin ziemlich vertraut mit Benutzerformularen, also entschied ich mich zu versuchen, ein wenig Phantasie und versucht, ein Benutzerformular wachsen/verkleinern und neu positionieren, um auszurichten Zentrum basierend auf einem Kontrollkästchen Änderungsereignis .Excel VBA: Aktualisieren von Benutzerformular Position/Größe verlässt Spur
Der Code funktioniert wie vorgesehen, aber es gibt ein Problem. Beim Verkleinern des Benutzerformulars hinterlässt das Benutzerformular eine Spur in allen Größenschritten, die während der Schleife festgelegt wurden. Dies lässt das Programm weniger "glatt" aussehen. Ich habe einen Screenshot des Problems sowie den entsprechenden Code beigefügt.
Ich habe versucht, Variationen von DoEvents
und Application.ScreenUpdating
. ScreenUpdating schien nichts zu tun, während DoEvents die Anzahl der Trails halbierte, aber auch den Text innerhalb des Benutzerformulars während der Ausführung etwas verrückt machte.
Hinweis: Das Kontrollkästchen Namen „MyCheckBox“ und die Userform heißt „Spaltenauswahl“
Vielleicht versuche ich mit übertrifft Speicher oder w/e zu viel zu tun .. Jede Hilfe obwohl geschätzt wird. Vielen Dank!
Private Sub MyCheckBox_Change()
Dim w As Integer
Application.ScreenUpdating = False
If MyCheckBox.Value = True Then
For w = 425 To 838 Step 7
ColumnSelect.Width = ColumnSelect.Width + 7
ColumnSelect.Left = ColumnSelect.Left - 3.5
Next w
Else
'DoEvents
For w = 838 To 425 Step -7
ColumnSelect.Width = ColumnSelect.Width - 7
ColumnSelect.Left = ColumnSelect.Left + 3.5
Next w
End If
Application.ScreenUpdating = True
End Sub
Halten diese Trails zu lange? Ist das das Problem? Denn im Grunde willst du * diese Trails erscheinen, wenn ich mich nicht irre –
Die Trails dauern nur so lange, wie der Code ausgeführt wird, was 1 Sekunde entspricht. Die Spuren sind Beweise für jede erfolgreiche Schleife, da sie um 7 voneinander beabstandet sind, aber im Idealfall würde jede Spur nach jeder Iteration verschwinden. Dies würde die Benutzerform verkleinern, aber es würde immer nur eine Spur auf einmal sein. Derzeit sind alle Spuren/Iterationen sichtbar – Citanaf
Mein Gefühl ist, dass dies mit den Einstellungen des Monitors wie der "Resfresh Rate" und seiner Qualität und Geschwindigkeit zusammenhängen könnte. –