2024年4月29日发(作者:)

InputBox函数和InputBox方法

在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)

sReturn

End Sub

注:

a>在默认情况下,InputBox函数的返回值是一个字符串类型,而不是变体类型。如果需

要使用该函数输入数值,则需要使用Val函数(或其他的转换函数)将返回值转换为相应类型

b>在对话框中,如果用户单击[取消]按钮(或按Esc键),则表示不使用当前输入的值,函

数将返回一个空字符串。根据这一特性,可判断用户是否输入了数据到对话框中

c>执行一次InputBox函数,只能返回一个值,如果需要输入多个值,则必须多次调用

该函数

2.显示InputBox方法对话框

使用Application对象的InputBox方法,也可显示一个接收用户输入的对话框。此对话

框有一个[确定]按钮和一个[取消]按钮。如果单击[确定]按钮,则InputBox方法将返回对话框

中的输入值。如果单击[取消]按钮,则InputBox方法返回逻辑值False。与InputBox函数不

同的是,该对话框可指定输入数据的类型,具体的语法格式如下:

ox(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/数值数组

以下代码提示用户在工作表Sheet1中选取一个单元格

Sub 使用InputBox方法()

Worksheets(1).Activate

Set myCell = ox(Prompt:="选择一个单元格", Type:=8)

End Sub