我之前在set focus
创建了userform
选项。然而这次我遇到了一些问题,并且想知道是否有人可以请求协助。我认为问题存在是因为我在pages
上使用userform
,而通常我不会。{/ p>
我的userform
有4页需要4个不同的部分。我想要它,以便如果我要在所述字段上将字段留空setfocus
。但是当发生这种情况时,我收到运行时错误' 2110' End,Debug。
Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("Master Data")
'find first empty row in database
iRow = ws.Cells.Find(What:="*", SearchOrder:=xlRows, _
SearchDirection:=xlPrevious, LookIn:=xlValues).Row + 1
If Me.BDM.Value = "" Then
Me.BDM.SetFocus
MsgBox "Please Enter BDM"
Exit Sub
End If
答案 0 :(得分:0)
通过在多页控件顶部显示Page1
来避免错误2110
您必须在触发Page1
之前激活SetFocus
,以使文本框控件可见。
相关代码
此代码示例假定您的BDM
文本框位于名为MultiPage1
的多页面控件的第一页(=索引0)上。
通过Page1
选择Me.MultiPage1.Value = 0
,避免 Excel 将控件解释为隐藏并引起错误2110.
此外,有必要在显示消息框之后通过技巧实际激活焦点(通过后续隐藏/显示userform)。
If Me.BDM.Value = "" Then
'Choose Page1 to allow view without error 2110
Me.MultiPage1.Value = 0 ' << avoid error 2110 by activating Page1
MsgBox "Please Enter BDM"
Me.BDM.SetFocus
Me.Hide: Me.Show ' activate above set focus
Exit Sub
End If