2014-01-21 1 views
1

나는 frmPE와 frmCRE의 두 가지 형식을 가지고 있습니다. 그들은 모달입니다.VBA Excel : 한 양식에서 다른 양식의 위치를 ​​변경할 수 있습니까?

frmCRE에는 formPE (frmPE의 인스턴스)를 열 수있는 "Edit PE"버튼이 있습니다. 위치와 함께 플레이하지 않으면 frmCRE의 중앙에 formPE가 열립니다. 한 번에 두 가지를 모두 볼 수 있도록 나란히 배치하고 싶습니다.

frmPE을 열면 frmCRE는 볼 수 있지만 만지지는 않습니다. 괜찮아.

'이 코드는 내가 문제가 formPE가 열릴 때, 그것의 기본 설정을 왼쪽으로 사용한다는 것입니다 생각 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 

입니다. PE 내에서, 나는 그것이 나를보기 전에 볼 수있다. 비록 그것이 쇼 전에 설정되었지만 왼쪽 = 0.

formPE.bInitialize 루틴을 사용하여 frmCRE가 열려 있고 LEFT 및 WIDTH를 확인하여 formPE.Left를 올바르게 설정하거나 frmCRE에서 설정할 수있는 방법이 있습니까? 위에서 뭘하려고?

감사 샤리

답변

1

사용 frmPEActivae 이벤트 자체를 이동하지만, 경우에만 frmCRE 볼 수 있습니다.

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

frmPE에서

감사합니다! 그것은 IF 없이도 실제로 작동하기 때문에 그것을 꺼 냈습니다. Activate 이벤트를 파악하는 데 영원히 걸렸을 것입니다. 왜 작동합니까? –

+0

도움이 되니 기쁩니다. If in을 넣는 이유는 frmPE가 열리면 _frmCRE가 닫히기 때문이며 frmPE은 이동하지 않습니다. –

관련 문제