回复MYTAO1976朋友:内容太多了,就写在这儿了
msgbox、inputbox这两个函数都可以实现在程序运行中,出现信息提示,与用户互动交流。
不同之处msgbox只能跟据预设的几个按钮来返回有限的信息,而inputbox却可以返回用户自由输入的内容,虽然字数有限,但处理的方法就灵活多了,这两个各有所长。具体见下面的比较和实例讲解。
MsgBox函数:
MsgBox("对话框中的提示信息",buttons,title,helpfile,context)
提示语句: 仅有的一个必需的参数。最大长度大约为1024个字符。如内容超过一行,则可以在每一行之间用回车符(Chr(13))、换行符(Chr(10))或是回车与换行符的组合(Chr(13)&Chr(10))将各行分隔开来。Buttons可以是由下列列表中的一个或多个,可将这些数字相加以生成buttons参数值。省略时值为0。
VbOKOnly =0 :只显示OK按钮
VbOKCancel =1 :显示OK及Cancel按钮
VbAbortRetryIgnore =2:显示Abort、Retry及Ignore按钮
VbYesNoCancel =3:显示Yes、No及Cancel按钮
VbYesNo =4:显示Yes及No按钮
VbRetryCancel =5:显示Retry及Cancel按钮
VbCritical =16:显示CriticalMessage图标
VbQuestion =32:显示WarningQuery图标
VbExclamation=48:显示WarningMessage图标
VbInformation=64: InformationMessage图标
vbDefaultButton1=0 :第一个按钮是缺省值
vbDefaultButton2=256:第二个按钮是缺省值
vbDefaultButton3=512:第三个按钮是缺省值
vbDefaultButton4=768:第四个按钮是缺省值
vbApplicationModal=0:应用程序强制返回;应用程序被挂起,直到用户对消息框作出响应才继续工作。
VbSystemModal=4096:系统强制返回;全部应用程序都被挂起,直到用户对消息框作出响应才继续工作。
VbMsgBoxHelpButton =16384:将Help按钮添加到消息框
VbMsgBoxSetForeground=65536:指定消息框窗口作为前景窗口
VbMsgBoxRight =524288:文本为右对齐
VbMsgBoxRtlReading =1048576:指定文本应为在希伯来和阿拉伯语系统中的从右到左显示
返回值:
vbOK=1:OK
vbCancel=2:Cancel
vbAbort =3:Abort
vbRetry =4:Retry
vbIgnore=5:Ignore
vbYes=6:Yes
vbNo =7:No
helpfile字符串表达式,识别用来向对话框提供上下文相关帮助的帮助文件。Helpfile与context是相配合的。Context为数值表达式,由帮助文件的作者指定给适当的帮助主题的帮助上下文编号。
当不需要返回值时,可以这样写(标题和按钮参数可以省略,系统默认用缺省值):
msgbox "刷新成功!"
当要判断返回值时,可以这样写(标题和按钮参数一样可以省略,系统默认用缺省值):
i=msgbox ("需要刷新目录吗?如果确定请点确定按钮,否则请点取消按钮.",VbOKCancel,"提示窗口")
if i=vbcalcel then exit sub '如果点击了取消,就退出当前事件.
InputBox函数:格式如下,第一项为必须外,其除为可选项,可以省略不写,XY坐标为在窗体上的准确位置。当用户点取消时,返回一个空的字符串(" ")。为了省略某些位置参数,必须加入相应的逗号分界符。
strFillName=InputBox("对话框中的提示信息","对话框的标题","缺省的返回值",X坐标,Y坐标)
X坐标和Y坐标当你需要为InputBox窗口指定在屏幕中的位置时用的,单位为象素,一般省略不写。
实例讲解:
(学生成绩排名及汇总http://club.excelhome.net/viewthread.php?tid=61473)
mm = InputBox("请你输入想要操作的班级(只能输入数字):", "班级输入提示信息", "1")
'默认的返回值为1
aaa = 0
For x = 1 To Sheets.Count
If Sheets(x).Name = mm Then aaa = x
'判断InputBox的返回值,确认你选择了哪个班级,把对应的班级的工作表的序号的值存入aaa变量
Next
If aaa = 0 Then
mmm = MsgBox("对不起,找不到这个班级!", vbOKOnly, "提示信息")
'如果aaa变量仍是空的,说明你在InputBox中输入的班级不对
Exit Sub
End If
Worksheets(aaa).Activate '激活对应的班级工作表,并确定下一步的排名方式
nn = MsgBox("1.RANK方式: 重复成绩影响后续数值的排位。如两个第二名,那么下一名将当做第四名。" & Chr(13) + Chr(10) _
& "2.一般方式: 如两个第二名,那么下一名将当做第三名。" & Chr(13) + Chr(10) & Chr(13) + Chr(10) & "如用RANK方式,请按确定钮;用一般方式请按否,退出排名请选取消", vbYesNoCancel, "排名方式")
totalT = 55 '确定下面的总评为班级,根据nn = MsgBox返回值的不同,调用不同的事件过程。
If nn = vbYes Then
rankway
ElseIf nn = vbNo Then
notrank
Else
Exit Sub
End If
[此贴子已经被作者于2004-10-8 20:04:31编辑过] |