【分享成果,随喜正能量】夜色难免黑凉,前行必有曙光。在心里种花,人生才不会荒芜。距离不是问题,相向而行才是关键。在该奋斗的岁月里,对得起每一寸光阴。于高山之巅,方见大河奔涌于群峰之上,更觉长风浩荡。。
《VBA代码解决方案》这套教程是我最早推出的教程,目前已经是第二版修订了。这套教程定位于入门后的提高,在学习这套教程过程中,侧重点是要理解及掌握我的“积木编程”思想。要灵活运用教程中的实例像搭积木一下把自己喜欢的代码摆好。
这套教程共三册,一百四十七讲,内容覆盖较广,也是初级和中级间的过度教程,改版后的内容主要是提供程序源码文件及代码修正为32位和64位兼用代码。今后一段时间会给大家陆续推出。今日的内容是第40讲:InputBox函数与InputBox方法
第四十一讲 InputBox方法与InputBox函数的区别
大家好,我们今日继续讲解VBA代码,今日讲解的是第41讲,在Excel中输入简单的数据可以使用InputBox函数显示的对话框,但是如果输入的数据类型不匹配时,过程运行时会产生意外错误。为了避免此类情况发生,可以使用另一种获得用户输入的方式——InputBox方法。
1 InputBox方法
InputBox方法显示一个接收用户输入的对话框,返回此对话框中输入的信息,
语法如下:
expression.InputBox(Prompt, Title, Default, Left, Top, HelpFile, HelpContextId, Type)
参数
a) expression是必需的,返回一个Application对象。
b) Prompt是必需的,作为对话框消息显示的字符串表达式。
c) Title是可选的,作为显示在对话框标题栏中的字符串表达式。如果省略Title参数,将使用默认的标题。
d) Default是可选的,在对话框显示时出现在文本框中的初始值。如果省略Default参数,则文本框为空。
e) Left是可选的,指定对话框相对于屏幕左上角的 x 坐标。
Top是可选的,指定对话框相对于屏幕左上角的 y 坐标。
f) HelpFile和参数HelpContextId是可选的,为对话框提供上下文相关的帮助和编号,如果提供了其中一个参数,则必须提供另一个参数,两者缺一不可。
g) Type是可选的,指定返回的数据类型。如果省略Type参数,对话框将返回文本。
l注意点:
1) InputBox方法的语法和InputBox函数的语法相似,最大的区别在于最后一个参数Type。
通过Type参数可以指定返回值的数据类型:0表示一个公式;1表示一个数字;2表示文本(字符串);4表示一个逻辑值,例如true或false;8 表示一个单元格引用;16表示一个错误值;64表示一个值的数组
2) 这些数值可以相加使用,如果希望返回数字和文本,可以将Type参数设置为1 2。
3) InputBox方法与InputBox函数相比,优点是内置的出错处理;InputBox方法和InputBox函数的另一个区别是,当用户单击“取消”按纽时返回False而不是长度为零的字符串。
4)在VBA代码中,Application.InputBox 调用的是InputBox方法,不带对象识别符的InputBox调用的是InputBox 函数。
2 InputBox方法应用实例
下面我们看一个实例对上面例子进行讲解:使用InputBox方法输入数据时可以指定数据的类型,如下面的代码所示。
Sub mynz_41() ’41 使用InputBox方法与使用InputBox函数的区别
DimdInput As Double
Dimr As Integer
r= Sheets(“41”).Range(“A65536″).End(xlUp).Row
dInput= Application.InputBox(Prompt:=”请输入必要的数字:”, Type:=1)
IfdInput <> False Then
Sheets(“41″).Cells(r 1, 1).Value = dInput
Else
MsgBox”你已取消了输入!”
EndIf
End Sub
代码窗口:
代码解析:mynz_41过程使用InputBox方法显示一个提示用户输入数字的对话框。
1)在第5行代码中将Type参数值设置为1,这意味着对话框只能输入数值。
2)第6行到第10行代码,如果用户单击对话框的“确定”按钮,将用户输入的数字写入工作表的A列单元格。如果用户单击对话框的“取消”按钮,则显示一条提示消息。运行MydInput过程将显示一个提示用户输入数字的对话框。
下面看一下测试结果:
运行窗口:
当录入非数字时显示下面的窗口:
当录入的是数字时:
今日内容回向:
1 inputbox 函数和inputbox 方法有什么不同?
2 TYPE 的几个值有什么意义?
本讲内容参考程序文件:VBA代码解决方案修订(1-48).xlsm
【分享成果,随喜正能量】山高水长,怕什么来不及,慌什么到不了,天顺其然,地顺其性,人顺其变,一切都是刚刚好。平和地接纳,不屈地奋斗,坚定地前行,如一泓清泉,静水流深,看似力量并不汹涌澎湃,却能磋磨岩石锋利的尖角,涤荡水中的混沌的杂质,把困难揉碎,长成属于自己的力量。。
我20多年的VBA实践经验,全部浓缩在下面的各个教程中: