1

我正在创建的多页用户窗体上的一些 VBA 编码有一点问题。我在用户表单的每个页面上都有一些文本框,并且我有一些代码,我一直在使用常规用户表单来清除在另一个线程的以下答案中提供的文本框(https://stackoverflow.com/a/8921247/2477891

代码如下所示:

Sub TB_enter(TB_name)
    If Len(Me.Controls(TB_name).Tag) = 0 Then
        Me.Controls(TB_name).Tag = Me.Controls(TB_name).Value
        Me.Controls(TB_name).Value = vbNullString
    End If
End Sub

Sub TB_exit(TB_name)
    'When you click out of the textbox and no information has been entered, returns original text
    If Len(Me.Controls(TB_name).Value) = 0 Then
        Me.Controls(TB_name).Value = Me.Controls(TB_name).Tag
        Me.Controls(TB_name).Tag = vbNullString
    End If
End Sub

连同用于清除它们的文本框的以下代码:

Private Sub AdNtbx_Enter()
TB_enter ActiveControl.Name
End Sub

Private Sub AdNtbx_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    TB_exit ActiveControl.Name
End Sub

我的问题是它们不再工作,因为它们位于多页上,并且以下行出现错误:

Me.Controls(TB_name).Value = vbNullString

有没有人对可能是什么问题/解决方案有任何建议?

我真的很感激。谢谢!

4

1 回答 1

0

我相信这就是您正在寻找的:

  Set Page1 = ThisWorkbook.VBProject.VBComponents("UserForm1").Designer.Controls("Multipage1").Pages("Page1")
  Page1.textbox1.Text = vbNullString

您可以编辑 ThisWorkbook、UserForm1 等属性以满足您的需要,但使用此代码,您将能够清除多页对象上的文本框

于 2015-11-05T08:25:22.000 回答