多页中文本框的访问地址

问题描述 投票:2回答:1

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

Example of the multipage defined during runtime.

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

但是,在多页的每个页面内是另一组控件,它们只有1个项目(文本框)。这意味着当我在'for'循环中扫描多页时,我总是可以调用第1项,类似于'me'语句。

Item1 within controls of each page of the multipage object.

但是,当我尝试超越第二组控件来调用文本框的值时,代码失败了。

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

为什么我不能称之为第二层控件?如果没有这个,我必须编写大量的解决方法来管理每个文本框的名称,因为用户重新订购它们。

提前致谢!

vba excel-vba controls userform excel
1个回答
0
投票

集合使用基于0的索引。

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

不需要.Item,因为Collection的默认值是其Items。

For i = 0 to Last_Page-1
    Example_String = Me.My_MultiPage.Pages(i).Controls(0).Value
Next i
© www.soinside.com 2019 - 2024. All rights reserved.