vba:用户窗体函数
我有一个从用户窗体上的按钮激活的sub。单击的基本步骤是 1) 根据用户输入运行我的sub 2) 选择结果表 3) 显示我的结果 4) 卸载我的用户表单 我遇到了一个问题,因为我想尝试对用户输入值设置边界,如果用户输入超出范围的内容,将弹出一个消息框,通知他们该范围。通过使用if/then循环,我已经能够完成这个简单的任务。在用户退出消息框后,我希望将userform与原始用户输入一起显示,并允许用户更改其输入。但当前,在用户单击消息框上的“确定”后,“我的单击”子菜单继续其过程,卸载我的用户表单并选择我的结果工作表。是否有一个简单的单行代码可以放在我的msgbox状态之后,以保留userform,而不是让用户重新输入其值 编辑-我的代码的一般要点如下:vba:用户窗体函数,vba,userform,Vba,Userform,我有一个从用户窗体上的按钮激活的sub。单击的基本步骤是 1) 根据用户输入运行我的sub 2) 选择结果表 3) 显示我的结果 4) 卸载我的用户表单 我遇到了一个问题,因为我想尝试对用户输入值设置边界,如果用户输入超出范围的内容,将弹出一个消息框,通知他们该范围。通过使用if/then循环,我已经能够完成这个简单的任务。在用户退出消息框后,我希望将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
Private子命令按钮1\u单击()
属性搜索
ActiveSheet.Name=“SearchResult”
单元格(1,1)。选择
卸载ILsearch
端接头
子搜索()
如果(文本框1和文本框2 0),则
'
'执行我想要的功能
'
其他:MsgBox(“数据库仅包括阳离子中最多含有8个碳的离子液体”)
如果结束
我会将搜索转化为一个函数,如果输入值在范围内或不在范围内,则返回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
围绕这一点有一千零一种方法——问题是您希望表单具有什么行为 您希望它在一定时间后自动关闭吗? 看看这个计时器的例子 或者查看应用程序
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) 你能发布子程序的代码吗?
Private Sub CommandButton1_Click ()
Unload Me
End Sub