3 개의 "최상위"페이지 (다중 페이지 기능 사용)와 4 개의 중첩 페이지가 각각 최상위 페이지 중 2 개 이내 인 단일 userform이 있습니다. 아래 예제 그림을 참조하십시오. 프로그래밍 방식으로 중첩 된 페이지를 참조하는 데 어려움을 겪고 있습니다. 이 예에서 EXCEL VBA : MultiPages가 중첩 된 경우 사용자 폼의 특정 페이지 선택
Screenshot of Nested Multipage Userform
는 페이지 캡션과 이름은 동일합니다. 따라서 Page4 캡션이있는 페이지는 Page4라고도합니다.===
기능 fMpIndex (문자열로 ByVal의 페이지 이름)
Dim PageCounter As Long
With MultiPage1
For PageCounter = 0 To .Pages.Count - 1
If .Pages(PageCounter).Name = PageName Then fMpIndex = PageCounter: Exit Function
Next PageCounter
End With
fMpIndex = -1
끝 : 나는 페이지 이름이 전달 될 때 페이지 인덱스를 반환하도록되어 다른 사람의 코드를 온라인으로 발견 기능
===
내가 좋아하는 뭔가를하려고 할 때 이것은, 그러나, 최상위 페이지에 대한 잘 작동 :
을있는 MsgBox 중첩 페이지 중 어떤
(이 예에서, 두 페이지 4 & 5) (& fMpIndex ("Page5") "이 페이지의 인덱스는"),이 방법은 값을 반환 -1 페이지가 존재하지 않음을 나타내지 만 명백하게 나타납니다. 범위 문제입니까? 위의 코드는 중첩 페이지가 아닌 최상위 페이지 만 검색합니까?
프로그래밍 방식으로 이름이나 캡션 또는 둘 모두로 특정 페이지를 참조하는 가장 안전한 방법은 무엇입니까? 뭔가처럼 될 것이라고 가정이 예에서는 페이지 strip.which page.name ("Page5")
을 userform.which
, 나는 단지 1 정의 폼을 가지고,하지만 난 알고 싶어 : 만약에 2 userforms 있었나요? 또한, 위의 예제에서, 나는 이미 2 페이지 스트립 중 어느 것이 참조되고 있는지 지정해야한다고 가정하고 있습니다 ... 이것은 현재 내 부분에 대한 가정이며 필요하지 않을 수도 있습니다.
이상적으로는 최상위 페이지인지 중첩 페이지인지에 관계없이 사용자 폼의 각 페이지에 절대 참조를 사용하는 것이 좋습니다. 실제로 위의 사양과 비슷한 경우 누군가가 예제 코드를 제공 할 수 있습니까?
이 스크린 샷에서댄