我有一个从用户窗体上的按钮激活的子。点击的基本步骤是
1)根据用户输入运行我的子
2)选择结果表
3)显示我的结果
4)卸载我的用户表单
我遇到了一个问题,因为我想尝试在用户输入值上设置边界,如果用户输入超出范围的内容,则会弹出一个消息框,通知他们该范围。通过使用if / then循环,我已经能够完成这个简单的任务。用户退出消息框后,我希望保持用户形式与原始用户输入一起显示,并允许用户更改其输入。但是目前用户在消息框上单击“确定”后,我的click sub继续其过程并卸载我的userform并选择我的结果工作表。是否有一个简单的一行代码,我可以在我的msgbox状态之后保存userform而不是让用户重新输入它们的值?
编辑 - 我的代码的一般要点如下:
Private Sub CommandButton1_Click()
PropertySearch.Search
ActiveSheet.Name = "SearchResult"
Cells(1, 1).Select
Unload ILsearch
End Sub
Sub Search()
If (TextBox1 And TextBox2 <= 8) And (TextBox1 And TextBox2 > 0) Then
'
'Performs my desired function
'
Else: MsgBox ("Database only includes ionic liquids with a maximum of 8 carbons in cation")
End If
答案 0 :(得分:1)
如果输入在边界内,我会将Search转换为返回true或false的函数:
Function Search() AS Boolean
If (TextBox1 And TextBox2 <= 8) And (TextBox1 And TextBox2 > 0) Then
Search = True
Else
Search = False
EndIf
End Function
然后如果输入不符合你的界限你就退出sub:
Private Sub CommandButton1_Click()
If(Not PropertySearch.Search) Then
MsgBox("your error message here")
Exit Sub
EndIf
' rest of the routine
End Sub
答案 1 :(得分:0)
有大约一千一种解决方法-问题是您希望表格具有什么行为?
您是否希望它在一定时间后自动关闭? 查看计时器1
的示例或者查看Application.Ontime
Application.OnTime Now + TimeValue("00:00:10"), "unloadForm"
其中“ unloadForm”是常规模块中的子项
Sub unloadForm()
Unload ILsearch
End Sub
您要添加关闭表单按钮吗?
Private Sub CommandButton1_Click ()
Unload Me
End Sub
您是否要用户手动关闭表单,并在顶部角落显示红色X?只需使用Unload
您是否要显示一个模式弹出窗口,该窗口将Excel冻结直到关闭然后再卸载表单?在卸载表单之前,请尝试添加MsgBox "Hello"
。
还有很多很多!
例如,我有几种使用键盘事件的形式。 Escape可以清除所有字段并隐藏/卸载表单,而Enter可以执行相同的操作,但也可以将值写入表中; Delete只能清除活动控件,而不会隐藏表单,上下箭头会循环显示当前表单并显示左右功能,例如Tab / Shift + Tab。