Ich möchte die Position einer Reihe von Formularen in der Mitte der Anwendung beibehalten, Formulare werden unterschiedliche Größen so unten FormTop/FormLeft Snippet kann nicht immer wieder mit ausgeführt werden der gleiche Effekt. Um dies zu tun, setze ich eine öffentliche Variable mit den .top und .left Werten des Formulars.Behalten Sie die Position von Benutzerformularen VBA
Ich erhalte eine Fehlermeldung "Objekt unterstützt diese Eigenschaft oder Methode nicht", was seltsam erscheint, da ich den Eindruck hatte, dass die Gleichung für FormLeft zu einem doppelten Datentyp ausgewertet würde. Beide Zeilen funktionieren im zweiten Codeabschnitt gut, was mache ich falsch?
Public FormTop As Double
Public FormLeft As Double
sub main()
CentreForm UserForm2
end sub
Sub CentreForm(UForm As UserForm)
With UForm
If FormTop = 0 And FormLeft = 0 Then
'*********Errors appear on the below two lines******************
FormLeft = Application.Left + (0.5 * Application.Width) - (0.5 * .Width)
FormTop = Application.Top + (0.5 * Application.Height) - (0.5 * .Height)
Debug.Print FormLeft, FormTop
End If
.StartUpPosition = 0
.Left = FormLeft
.Top = FormTop
End With
End Sub
sub IWork()
With UserForm2
.Left = Application.Left + (0.5 * Application.Width) - (0.5 * .Width)
.Top = Application.Top + (0.5 * Application.Height) - (0.5 * .Height)
end with
end sub
die Leitungsfehler erzeugt ?? –
Hoppla, die Zeilen, wo FormLeft und FormTop beide den Fehler erzeugen, werde ich jetzt aktualisieren ... – User632716
Wie nennt man 'Centreform-Prozedur' ?? –