2017-10-15 140 views
0

我有3「頂層」的頁面(使用多頁的功能),然後加入4-嵌套頁的每個內的頂層頁的2的單個用戶窗體。見下面的示例圖片。我在編程上引用嵌套頁面時遇到困難。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(「這頁的索引爲」 & fMpIndex(「第5頁」))

任何嵌套頁(在該例子中,4 & 5兩個頁面),則此方法返回的值-1 ,表明該頁面不存在,但顯然它確實存在。這是範圍問題嗎?上面的代碼是否只搜索頂層頁面而不是嵌套頁面?

什麼是按名稱或標題或兩者以編程方式引用特定頁面的最安全,最可靠的方法是什麼?我相信它會是這樣的:

這userform.which頁strip.which page.name(「第5頁」)

在這個例子中,我只有1個窗體,但我想知道:如果什麼我有2個用戶表單?而且,在上面的例子中,我已經假定必須指定哪兩頁被引用......這是我現在的一個假設,可能不是必需的。

理想情況下,我想在窗體的方式來使用的絕對引用的每一頁,無論它是一個頂級頁或嵌套頁。如果確實如上述規範那樣,有人可以提供示例代碼嗎?

謝謝

回答

0

在你的屏幕截圖,在MultiPage1唯一頁面第一頁,第二頁,第3頁和。這些可以使用(例如)MultiPage1.Pages("Page1")來引用。 MultiPage1.Pages("Page4")不存在。

Page1包含MultiPage2,其頁面爲Page4和Page5。這些可以使用MultiPage2.Pages("Page4")進行參考。

您可以通過索引引用多頁控件中的頁面,如MultiPage1.Pages(iPageIndex),其中iPageIndex從0到頁數減一。在您的屏幕截圖中,MultiPage1.Pages(1)參考Page2和 MultiPage2.Pages(0)參考Page4。