新浪博客

[Excel.VBA]使用InputBox输入对话框

2012-12-21 15:43阅读:
[整理/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/逻辑值(TrueFalse)
e>8/单元格引用,作为一个Range对象
f>16/错误值,如#N/A
g>64/数值数组
以下代码提示用户在工作表Sheet1中选取一个单元格
Sub 使用InputBox方法()
Worksheets(1).Activate
Set myCell = Application.InputBox(Prompt:='选择一个单元格', Type:=8)
Debug.Print myCell.Cells.Count
End Sub

我的更多文章

下载客户端阅读体验更佳

APP专享