在多页面用户窗体中检查文本框的值
我有一个多个页面的用户窗体,每个都有我想确保数字的文本框,然后将它们转储回工作表。
我有其他正常的用户forms,这样做:
Private Sub myTextBox_Exit(ByVal Cancel As MSForms.ReturnBoolean) OnlyNumbers End Sub Private Sub OnlyNumbers() If TypeName(Me.ActiveControl) = "TextBox" Then With Me.ActiveControl If Not IsNumeric(.Value) And .Value <> vbNullString Then MsgBox "Sorry, only numbers allowed" .Value = vbNullString End If End With End If End Sub
这工作正常,但是当我尝试做一些类似的这个多页面用户表单不起作用。
我试过使用
Me.ActiveControl.ActiveControl
但得到一个“对象不支持这个属性或方法”的运行时错误。 这将工作时,文本框是在一个框架内,但似乎不像页面处理相同的方式。
是的,这个是棘手的。 您可以将MultiPage控件视为位于其上的控件的父项。 你需要做的是先selectMultiPage控制,然后从那里select主动控制。
看起来像:
Me.MultiPage1.Pages(Me.MultiPage1.Value).ActiveControl.Name
Pages属性允许你select你想要select的页面。 您可以通过使用多页控件的索引(索引从1开始)获取此信息。 然后,您可以调用ActiveControl并获得预期的控制权。
希望能帮助到你!