首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >InputBox取消

InputBox取消
EN

Stack Overflow用户
提问于 2010-06-26 19:25:13
回答 4查看 8.5K关注 0票数 3

我已经创建了一个Inputbox来输入用户名,但仍然使用cancel按钮

代码语言:javascript
运行
复制
Private Sub Form_Load()
fsUserName = UCase(InputBox("Please Enter your name.", "User Name", _
"dc"))

If fsUserName = "" Then
MsgBox "No name Entered." & Chr(13) & Chr(13) & _
"You must enter a name.", vbExclamation, "ERROR"
Form_Load
ElseIf VarType(fsUserName) = 0 Then 'If cancel clicked
cmdQuit_Click

End If

还有一种方法是,当表单上的X按钮被单击时,它将执行退出,以便当用户单击命令按钮Quit或X时,退出脚本是run.In,退出脚本有消息框和清理。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-06-26 19:40:03

可以使用StrPtr()检测是否点击了cancel;

代码语言:javascript
运行
复制
Dim fsUserName As String

fsUserName = InputBox("Please Enter your name.", "User Name", "dc")

If (StrPtr(fsUserName) = 0&) Then
    MsgBox "Cancelled or X clicked"
ElseIf fsUserName = "" Then
    MsgBox "No name Entered." & vbCr & "You must enter a name.", vbExclamation, "ERROR"
Else
    fsUserName = UCase$(fsUserName)
    MsgBox fsUserName
End If

如果您想在表单卸载时执行某些操作,可以使用Form_Unload事件,或者更好的方法是使用在实际卸载之前触发的Form_QueryUnload事件,它允许您取消卸载。

它还会告诉您卸载表单的原因(如果单击红色的X,UnloadMode将为0)

使用"Unload Me“将引发这两个事件。

编辑:像这样在Form_Load中调用Form_Load最终会填满堆栈,最好使用循环来查找丢失的用户名。

票数 11
EN

Stack Overflow用户

发布于 2010-06-26 20:52:53

Alex的答案是使用StrPtr,我假设它像广告中那样工作,就目前而言是好的,但更好的建议(IMO)是完全避免使用InputBox。您可以使用一个对话框样式的窗体、一个文本框和几个按钮轻松创建自己的窗体,如果您喜欢,还可以创建一个图标。

滚动您自己的代码为您提供了完全的灵活性和可预测性,一旦您拥有了它,您就可以在未来的任何项目中使用它。

票数 2
EN

Stack Overflow用户

发布于 2016-02-07 00:17:37

Excel InputBoxApplication.InputBox是两种不同的功能。

代码语言:javascript
运行
复制
Sub GetValue2()
    Dim Monthly As Variant
    Monthly = Application.InputBox _
        (Prompt:="Podaj wysokość miesięcznej wypłaty:", _
         Type:=1)
    If Monthly = False Then Exit Sub
    MsgBox "Zarobki rocznie: " & Monthly * 12
End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3123679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档