Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
vba:用户窗体函数_Vba_Userform - Fatal编程技术网

vba:用户窗体函数

vba:用户窗体函数,vba,userform,Vba,Userform,我有一个从用户窗体上的按钮激活的sub。单击的基本步骤是 1) 根据用户输入运行我的sub 2) 选择结果表 3) 显示我的结果 4) 卸载我的用户表单 我遇到了一个问题,因为我想尝试对用户输入值设置边界,如果用户输入超出范围的内容,将弹出一个消息框,通知他们该范围。通过使用if/then循环,我已经能够完成这个简单的任务。在用户退出消息框后,我希望将userform与原始用户输入一起显示,并允许用户更改其输入。但当前,在用户单击消息框上的“确定”后,“我的单击”子菜单继续其过程,卸载我的用户表

我有一个从用户窗体上的按钮激活的sub。单击的基本步骤是

1) 根据用户输入运行我的sub

2) 选择结果表

3) 显示我的结果

4) 卸载我的用户表单

我遇到了一个问题,因为我想尝试对用户输入值设置边界,如果用户输入超出范围的内容,将弹出一个消息框,通知他们该范围。通过使用if/then循环,我已经能够完成这个简单的任务。在用户退出消息框后,我希望将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
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