[Excel.VBA]使⽤InputBox输⼊对话框
[整理/2012-03-18: ]
在VBA中,开发⼈员可调⽤以下两种类型的InputBox输⼊对话框:
a>⼀种是VB中常⽤的InputBox函数,在该输⼊对话框中显⽰提⽰信息,等待⽤户输⼊正⽂或按下[确定]或[取消]按钮,并返回包含⽂本框的内容,该对话框返回值类型为字符串
b>⼀种是使⽤Application对象的InputBox⽅法显⽰⼀个输⼊对话框,在该对话框中设置输⼊值的类型
1.显⽰InputBox函数的对话框
使⽤VBA提供的InputBox函数,可产⽣⼀个输⼊对话框。该函数打开⼀个对话框作为输⼊数据的界⾯,等待⽤户输⼊数据,并返回所输⼊的内容。其语法格式如下:
InputBox(prompt[,title][,default][,xpos][,ypos][,helpfile,context])
prompt为对话框消息出现的字符串表达式。如果需要在对话框中显⽰多⾏数据,则可在各⾏之间⽤回车换⾏符来分隔,⼀般使⽤VBA的常数vbCrLf代表回车换⾏符
title为对话框标题栏中的字符串。如果省略该参数,则把应⽤程序名放⼊标题栏中
default为显⽰在⽂本框中的字符串。如果省略该参数,则⽂本框为空
xpos/ypos这两个参数必须成对出现,指定对话框的左上⾓坐标位置
helpfile设置对话框的帮助⽂件,该参数可省略
context设置对话框的帮助主题编号,该参数可省略
以下代码可接收⽤户输⼊的数据
Sub 使⽤InputBox函数()
Dim sPrompt As String, sTitle As String, sDefault As String, sReturn As String
sPrompt = "请输⼊⽤户姓名: "
sTitle = "输⼊姓名"
sDefault = "flystar"
sReturn = InputBox(sPrompt, sTitle, sDefault)
Debug.Print sReturn
End Sub
注:
a>在默认情况下,InputBox函数的返回值是⼀个字符串类型,⽽不是变体类型。如果需要使⽤该函数输⼊数值,则需要使
⽤Val函数(或其他的转换函数)将返回值转换为相应类型
b>在对话框中,如果⽤户单击[取消]按钮(或按Esc键),则表⽰不使⽤当前输⼊的值,函数将返回⼀个空字符串。根据这⼀特性,可判断⽤户是否输⼊了数据到对话框中
c>执⾏⼀次InputBox函数,只能返回⼀个值,如果需要输⼊多个值,则必须多次调⽤该函数
2.显⽰InputBox⽅法对话框
使⽤Application对象的InputBox⽅法,也可显⽰⼀个接收⽤户输⼊的对话框。此对话框有⼀个[确定]按
钮和⼀个[取消]按钮。如果单击[确定]按钮,则InputBox⽅法将返回对话框中的输⼊值。如果单击[取消]按钮,则InputBox⽅法返回逻辑值False。
与InputBox函数不同的是,该对话框可指定输⼊数据的类型,具体的语法格式如下:
Application.InputBox(Prompt, Title, Default, Left, Top, HelpFile, HelpContextID, Type)
从以上语法格式中可以看出,⼤部分参数与InputBox函数相同,只是在最后多了⼀个Type参数,⽤来指定输⼊数据的类
型。Type参数可设置为以下值之⼀或其中⼏个值的和。例如,对于⼀个可接受⽂本和数字的输⼊框,将Type设置为1+2.
a>0/公式
b>1/数字
c>2/⽂本(字符串)
d>4/逻辑值(True或False)
e>8/单元格引⽤,作为⼀个Range对象
f>16/错误值,如#N/A
g>64/数值数组vba做excel窗体录入教程
以下代码提⽰⽤户在⼯作表Sheet1中选取⼀个单元格
Sub 使⽤InputBox⽅法()
Worksheets(1).Activate
Set myCell = Application.InputBox(Prompt:="选择⼀个单元格", Type:=8) Debug.Print myCell.Cells.Count
End Sub

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。