嵌套多页时选择用户窗体中的特定页面
Selecting Specific Pages in a Userform when MultiPages are Nested
我有一个用户表单,其中包含 3 个“top-level”页面(使用多页功能),然后是四个嵌套页面,每个页面位于 top-level 个页面中的两个。
嵌套多页用户表单的屏幕截图
在此示例中,页面标题和名称相同。因此,标题为 Page4 的页面也被命名为 Page4。我在网上找到代码,当页面名称传递给它时,应该 return 页面索引:
Function fMpIndex(ByVal PageName As String)
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
End Function
这适用于 top-level 页面,但是,当我尝试类似的操作时:
MsgBox ("This page's index is " & fMpIndex("Page5"))
对于任何嵌套页面(在本例中为第 4 和第 5 页),则此方法 return 的值为 -1,表示该页面不存在。这是范围问题吗?上面的代码是否只搜索 top-level 页面而不搜索嵌套页面?
通过名称和/或标题以编程方式引用特定页面的最安全、最可靠的方法是什么?我假设它会是这样的:
which userform.which page strip.which page.name("Page5")
在这个例子中,我只有一个用户表单,但是如果我有两个用户表单呢?另外,在上面的示例中,我假设必须指定引用两个页面条中的哪一个。
理想情况下,我想要一种方法来使用对用户窗体中每个页面的绝对引用,无论它是 top-level 页面还是嵌套页面。
在您的屏幕截图中,MultiPage1 中仅有的页面是 Page1、Page2 和 Page3。这些可以使用(例如)MultiPage1.Pages("Page1")
来引用。 MultiPage1.Pages("Page4")
不存在。
Page1包含MultiPage2,其页面为Page4和Page5。这些可以是使用 MultiPage2.Pages("Page4")
.
的引用
您可以按索引引用 MultiPage 控件中的页面,如 MultiPage1.Pages(iPageIndex)
,其中 iPageIndex 从 0 到页数减一。在您的屏幕截图中,MultiPage1.Pages(1)
引用了 Page2,并且
MultiPage2.Pages(0)
引用第 4 页。
我有一个用户表单,其中包含 3 个“top-level”页面(使用多页功能),然后是四个嵌套页面,每个页面位于 top-level 个页面中的两个。
嵌套多页用户表单的屏幕截图
在此示例中,页面标题和名称相同。因此,标题为 Page4 的页面也被命名为 Page4。我在网上找到代码,当页面名称传递给它时,应该 return 页面索引:
Function fMpIndex(ByVal PageName As String)
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
End Function
这适用于 top-level 页面,但是,当我尝试类似的操作时:
MsgBox ("This page's index is " & fMpIndex("Page5"))
对于任何嵌套页面(在本例中为第 4 和第 5 页),则此方法 return 的值为 -1,表示该页面不存在。这是范围问题吗?上面的代码是否只搜索 top-level 页面而不搜索嵌套页面?
通过名称和/或标题以编程方式引用特定页面的最安全、最可靠的方法是什么?我假设它会是这样的:
which userform.which page strip.which page.name("Page5")
在这个例子中,我只有一个用户表单,但是如果我有两个用户表单呢?另外,在上面的示例中,我假设必须指定引用两个页面条中的哪一个。
理想情况下,我想要一种方法来使用对用户窗体中每个页面的绝对引用,无论它是 top-level 页面还是嵌套页面。
在您的屏幕截图中,MultiPage1 中仅有的页面是 Page1、Page2 和 Page3。这些可以使用(例如)MultiPage1.Pages("Page1")
来引用。 MultiPage1.Pages("Page4")
不存在。
Page1包含MultiPage2,其页面为Page4和Page5。这些可以是使用 MultiPage2.Pages("Page4")
.
您可以按索引引用 MultiPage 控件中的页面,如 MultiPage1.Pages(iPageIndex)
,其中 iPageIndex 从 0 到页数减一。在您的屏幕截图中,MultiPage1.Pages(1)
引用了 Page2,并且
MultiPage2.Pages(0)
引用第 4 页。