我已经创建了一个Inputbox来输入用户名,但仍然使用cancel按钮
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,退出脚本有消息框和清理。
发布于 2010-06-26 19:40:03
可以使用StrPtr()
检测是否点击了cancel;
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
最终会填满堆栈,最好使用循环来查找丢失的用户名。
发布于 2010-06-26 20:52:53
Alex的答案是使用StrPtr,我假设它像广告中那样工作,就目前而言是好的,但更好的建议(IMO)是完全避免使用InputBox。您可以使用一个对话框样式的窗体、一个文本框和几个按钮轻松创建自己的窗体,如果您喜欢,还可以创建一个图标。
滚动您自己的代码为您提供了完全的灵活性和可预测性,一旦您拥有了它,您就可以在未来的任何项目中使用它。
发布于 2016-02-07 00:17:37
Excel InputBox
和Application.InputBox
是两种不同的功能。
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
https://stackoverflow.com/questions/3123679
复制相似问题