VBA Excel:如何让一个表单改变另一个表单的位置?

时间:2014-01-21 05:47:45

标签: forms excel-vba vba excel

我有两种形式,frmPE和frmCRE。它们是模态的。

frmCRE有一个“编辑PE”按钮,它将打开formPE(frmPE的实例)。 如果我不玩这些头寸,那么formPE会以frmCRE为中心打开。 我想把它们并排放置,这样我就可以同时看到它们。

当我打开frmPE时,我仍然可以看到frmCRE而不是触摸它。没关系。

'此代码位于cmdEditPE

Set formPE = New frmPE
Load formPE
If Not formPE.bInitialize(vbFalse) Then Err.Raise glHANDLED_ERROR
Me.Left = 100  ' move frmCRE to the left so I can see it 
formPE.Left = Me.Left + Me.Width   ' move frmPE to move to the right side of frmCRE (bad)
formPE.Show

我认为问题是当formPE打开时,它会使用默认的左设置。从PE内部,我可以看到me.Left = 0,即使它是在节目之前设置的。

有没有办法可以使用formPE.bInitialize例程来查看frmCRE是否打开并找到它的LEFT和WIDTH所以我可以正确设置formPE.Left,或者我可以通过frmCRE设置它的方式在上面做什么?

由于 斜里

1 个答案:

答案 0 :(得分:1)

使用Activae frmPE事件移动自己,但仅当frmCRE可见时才会移动。

frmPE

Private Sub UserForm_Activate()
    If frmCRE.Visible Then
        Me.Left = frmCRE.Left + frmCRE.Width
    End If
End Sub