【www.arisingsemi.com--语言培训】

方式和方法的区别
VBA中InputBox函数和InputBox方法的异同
InputBox函数  当只需做出“是”、“否”、“确定”、“取消”等简单的回答时,MsgBox函数非常好用。  但是,如果需要其他类型的输入,例如数字和文本时,就需要使用InputBox函数。  InputBox函数显示一个对话框,并且提供便于用户输入的文本说明。
InputBox函数的语法如下:  InputBox(prompt[,title][,default][,xpos][,ypos][,helpfile,context])  InputBox函数必须具有的参数是prompt。
和MsgBox函数的prompt参数一样,prompt参数的值是将显示在对话框中的字符串。  可选参数title是显示在对话框标题栏中的字符串表达式。
和在MsgBox函数中一样,如果没有给title参数设定数值,标题栏将显示“MicrosoftExcel”。  为了节省用户的时间,你也许希望给可选参数default设定数值。这个参数的值可设为一个字符串表达式,当用户没有输入任何数据时,其值将显示在文本框中作为默认响应。如果省略了这个参数,文本框将显示为空白。
如果要求用户输入邮政编码,而且大部分顾客的邮政编码都相同,那么应当提供一个邮政编码作为默认输入。  xpos和ypos也是可选参数,这两个参数决定输入框在屏幕上的显示位置。  helpfile和context这两个可选参数只有在为应用程序创建了帮助文件时才有用。  InputBox函数的返回值是用户在对话框上的文本框中输入的信息。要练习使用InputBox函数,请完成如下步骤:  1)在当前模块中插入新的名为IBExercise的过程。  2)为新的过程输入如下代码:  Dim iResult As Integer  iResult=InputBox("Please enter your favorite number")  MsgBox iResult  =iResult  这些代码提示用户输入一个数字,接着在一个消息框中显示这个数字,同时它也将这个数字显示在工作表上活动的单元格中。
  3)将插入点指向该过程,按下F5键运行这个过程,显示出来的输入框如图所示。
4)输入一个数字并按回车键,显示出包含刚才输入数字的消息框。5)单击“确定”按钮,退出消息框。6)返回工作簿,应当在工作簿活动的单元格中看到输入的数字。
如果你查看在线帮助文档,就会知道InputBox函数返回一个字符串。实际上并不完全是这样。
在VisualBasic更新的版本,包括实现VBA的版本中,从输入数据的特征上看,返回值的行为更像是Variant类型。这正是即使iResult变量被设定为Integer数据类型时,过程仍然能够正常工作的原因。
关于InputBox函数,需要知道的另一点是,如果用户单击了“取消”按钮会返回什么样的数值。如果用户单击“取消”按钮,InputBox函数将返回一个零长度的字符串" "。
最后,用户似乎总是想知道如何控制输入框的大小。
实际上无法控制输入框的大小,这正是“所见即所得”的一个例子。

InputBox方法Excel支持另一种获取用户输入的方式—InputBox方法。看上去InputBox方法和InputBox函数是一样的,实际上InputBox方法具有一些细微的但是非常有用的区别。
首先需要了解的是InputBox方法的语法:ox(prompt,[Title],[Default],[Left],[Top],[HelpFile],[HelpContextId],[Type])InputBox方法的语法和InputBox函数相似。注意语句以Application开始。这个方法属于Excel,因而它也属于应用程序。大部分参数看上去都是相同的。细微的区别是Left和Top参数,它们与xpos和ypos参数等价。
应当注意的是InputBox方法的最后一个参数—Type。
通过可选参数Type可以指定返回值的数据类型。表5-3列出了参数Type可以使用的数值。
表5-3  参数Type可以使用的数值


期望的返回值
0
一个公式
1
一个数字
2
文本(字符串)
4
一个逻辑值,例如true或False
8
一个单元格引用
16
一个错误值
64
一个值的数组
看过这张表后,你也许希望知道为什么数字之间有间隔,例如从4跳到

8、从16跳到64,这是因为可以将这些可用的数值相加后使用。
例如,如果你希望接收数字和文本,那么可将Type参数设置为1+2。
如果没有设置Type参数的值,InputBox方法将返回文本。为了说明InputBox方法的优点,请完成如下步骤:1)运行IBExercise过程。
2)在输入框中输入字母“a”作为响应,按下回车键,查看运行的结果。因为输入的是字母而不是数字,过程运行会出错,如图所示。

此主题相关图片如下:3)单击“结束”按钮,退出消息框。
4)创建一个新的名为IBMethod的过程,这个新的过程将使用InputBox方法。5)为新的过程输入如下代码:Dim iResult As IntegeriResult=ox_("Please enter your favorite number",,,,,,,1)MsgBox =iResult在ox语句中使用的逗号相当于一个占位符,用以取代没有输入数值的参数。Type是InputBox方法语法中最后一个参数。将Type参数设置为1,这意味着只接收数字。注意本过程中这一行代码与IBExercise中的代码行的唯一区别是ox语句的使用。
6)将插入点指向过程IBMethod,按下F5键运行过程,显示出一个输入框。7)输入字母“A”并按回车键,此时过程不会出错,而是显示一条解释所出问题的消息,如图所示。

此主题相关图片如下:8)按回车键退出该消息框。9)输入“7”并按回车键,显示一个消息框,其中有一个7。单击“确定”按钮退出消息框。现在,可以看到InputBox方法的一个优点是内置的出错处理。InputBox方法和InputBox函数的另一个区别是,当用户单击“取消”按钮时的返回值。如果使用InputBox函数而用户选择了“取消”按钮,则返回一个零字节的字符串。
如果使用InputBox方法,则返回False。。

本文来源:http://www.arisingsemi.com/yuyanliuxue/139528/