Vba 多页内文本框的访问地址

Vba 多页内文本框的访问地址,vba,excel,controls,userform,Vba,Excel,Controls,Userform,我有一个带有运行时定义的多页的userform。启动时,多页会填充许多页面,每个页面都有自己的文本框 For i = 0 to Last_Page-1 Example_String = Me.My_MultiPage.Pages.Item(i).Controls.Item(1).Value Next i 挑战在于,在运行时,用户可以重新排序、删除、添加和重命名这些页面。最后,我需要调用多页每页的所有数据,包括文本框。这意味着在Me.Controls中,项目编号变得混乱,因此没有用处 但是,在

我有一个带有运行时定义的多页的userform。启动时,多页会填充许多页面,每个页面都有自己的文本框

For i = 0 to Last_Page-1
Example_String = Me.My_MultiPage.Pages.Item(i).Controls.Item(1).Value
Next i

挑战在于,在运行时,用户可以重新排序、删除、添加和重命名这些页面。最后,我需要调用多页每页的所有数据,包括文本框。这意味着在Me.Controls中,项目编号变得混乱,因此没有用处

但是,在多页的每个页面中都有一组进一步的控件,这些控件只包含1项(文本框)。这意味着当我在“for”循环中扫描多页时,我总是可以调用项1,类似于“me”语句

然而,当我试图超越第二组控件来调用textbox的值时,代码失败了

For i = 0 to Last_Page-1
Example_String = Me.My_MultiPage.Pages.Item(i).Controls.Item(1).Value
Next i
为什么我不能称之为第二层控制?如果没有这些,我必须编写大量的代码来管理用户重新排序时每个文本框的名称


提前谢谢

集合使用基于0的索引

For i = 0 to Last_Page-1
    Example_String = Me.My_MultiPage.Pages.Item(i).Controls.Item(0).Value
Next i
不需要
.Item
,因为集合的默认值是其项

For i = 0 to Last_Page-1
    Example_String = Me.My_MultiPage.Pages(i).Controls(0).Value
Next i