在Userform上的多页控件中清除文本框

时间:2013-04-25 21:30:39

标签: excel vba excel-vba

我正在学习vba,这是第一次学习vba。该项目围绕婚礼策划工作表构建。我打算锁定工作表,以便公式和格式不会被用户破坏(我的未婚夫会找到方法)。为此,我正在构建一个userform,它通过多页控件的不同页面上的文本框收集数据。

此示例只有一个页面,但稍后会显示“Apparel”之类的其他页面: enter image description here

我目前在_Click上有以下代码用于“清除”按钮。

Dim C As Control


For Each C In frmExpenses.Controls
    If TypeName(C) = "TextBox" Then
        C.Value = ""
    End If
Next C

这有效地清除了文本框中的数据。但是,我希望能够仅在多页上清除活动页面上的数据。例如,如果稍后有一个名为“Flowers”的标签,并且它是活动标签,我想将数据保留在“服饰”上并清除“鲜花”中的数据。

我尝试过尽可能彻底。如果您需要澄清某些事情,请告诉我。

1 个答案:

答案 0 :(得分:4)

试试这个

对于特定页面(说1)

Dim ctl As Control

For Each ctl In Me.MultiPage1.Pages(1).Controls
    If TypeName(ctl) = "TextBox" Then  ctl.Value = ""
Next

来自ActivePage

Dim ctl As Control

For Each ctl In Me.MultiPage1.Pages(Me.MultiPage1.Value).Controls
    If TypeName(ctl) = "TextBox" Then ctl.Value = ""
Next