2013-04-25 46 views
2

我正在学校项目中进行第一次学习vba。该项目是围绕婚礼计划工作表建立的。我计划锁定工作表,以便公式和格式不会被用户破坏(我的未婚夫会找到方法)。为了做到这一点,我正在构建一个用户窗体,它通过多页控件的不同页面上的文本框收集数据。用户表单中的多页控件中的清除文本框

这个例子只有一个页面,但它会告诉其他人一样“服饰”后来: 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”的选项卡并且它是活动选项卡,则我想将数据保留在“服装”上,并从“鲜花”中清除数据。

我试过尽可能彻底的上面。让我知道,如果你需要澄清一些事情。

回答

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 
+0

它不喜欢: 页面(Me.MultiPage1 .Value) 具体而言,t他调试器强调了“MultiPage1”部分。 我尝试将该部分更正为我给出多页的名称,但它也未纠正该问题。 – 2013-04-25 22:01:14

+1

我在发帖前测试过:)让我想想你的最后可能会出现什么问题...... – 2013-04-25 22:02:23

+1

没关系,在我原来的问题中,我并没有表明我实际上在_Click的“Cancel”上有一个警告的用户表单启动。这导致“我”不能工作。我将其改为原始的用户表单,并且完美运行。 谢谢! – 2013-04-25 22:06:04