2014-02-06 5 views
-1

나는 3 개의 폼 form1-> form2-> form3-> form1-> form2-> form3 ....의 루프가있는 프로젝트를 만들고있다. 루프는 애플리케이션이 종료 될 때까지 머물러있다. 루프는 버튼을 통해 이루어집니다. form3에서 나는 interop.excel을 사용하고 워크 시트의 데이터를리스트 박스에서 파일의 이름을 선택하여 배열로 복사했습니다.루프에있는 양식의 값을 유지하는 방법은 무엇입니까?

이제 문제는 form3에서 form1로 갈 때마다 form3이 포커스를 잃고 form2가 항상 form3의 새 인스턴스를 생성한다는 것입니다. 그래서 이전의 form3도 열려서 새로운 form3을 엽니 다.

저는 How can I loop through all the open instances of a particular form?Application.OpenForms.Count = 0 always 에 주어진 해결책을 보았습니다. 그러나 도움이되지 않았습니다.

form3의 인스턴스가 있는지 여부를 확인할 수있는 방법이 있습니까? 그렇다면 form3의 새 인스턴스를 만들거나 이전 form3에 포커스를 둡니다.

도와주세요. 미리 감사드립니다.

답변

0

사용자의 요구에 너무 This Thread

Function IsUserFormLoaded(ByVal UFName As String) As Boolean 
Dim UForm As Object 

IsUserFormLoaded = False 
For Each UForm In VBA.UserForms 
    If UForm.Name = UFName Then 
     IsUserFormLoaded = True 
     Exit For 
    End If 
Next 
End Function 'IsUserFormLoaded 

에서 당신은 할 수

If IsUserFormLoaded(UserForm3) Then 
    'Code if it is open here 
Else 
    'Code if it is NOT open here 
End If 
관련 문제