加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

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

(2012-12-21 15:43:04)
标签:

excel

vba

基础

分类: Excel
[整理/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

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有