0
我想保留在应用程序中心的多个表单的位置,表单将是不同的大小,所以下面的FormTop/FormLeft代码段不能一次又一次地运行同样的效果。为此,我使用表单的.top和.left值设置公共变量。保留用户表单的位置VBA
我收到一个错误“对象不支持这个属性或方法”,这看起来很奇怪,因为我的印象是,使FormLeft的公式计算为双数据类型。这两行代码在代码的第二部分都工作正常,我做错了什么?
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
该生产线生产的错误? –
糟糕,FormLeft和FormTop都产生错误的行,我现在会更新... – User632716
你如何调用'CentreForm procedure'? –