如果仅需要用户在“是”和“否”之间做出选择,使用MsgBox函数就能够满足需要,但是在实际应用中往往需要用户输入更多的内容,如数字、日期或文本,这就需要使用InputBox函数获取用户的输入。
【资料图】
02
InputBox方法
除了InputBox函数,VBA还提供了InputBox方法(使用Application.InputBox调用InputBox方法)用于接收用户输入的信息。二者的用法基本相同,区别在于InputBox方法可以指定返回值的数据类型。其语法格式如下。
其中Left和Top参数分别相当于InputBox函数的xpos和ypos参数。Type参数可以指定InputBox方法返回值的数据类型。如果省略Type参数,输入对话框将返回String类型数据,Type参数的值及其含义如表4-5所示。
表4-5 Type参数的值及其含义
示例4-5
利用InputBox方法输入邮政编码
步 骤 1 在Excel中新建一个空白工作簿文件,按组合键切换到VBE窗口。
步 骤 2 在【工程资源管理器】中插入“模块”,并修改其名称为“InputBoxDemo2”。
步 骤 3 在【工程资源管理器】中双击模块InputBoxDemo2,在【代码】窗口中写入如下代码。
步 骤 4 返回Excel界面,运行ExcelInputBoxDemo过程,将显示输入对话框。如果用户输入的内容包含非数字字符,单击【确定】按钮后,将显示“无效的数字”错误提示对话框,如图4-6所示。
代码解析如下。
第4行代码中设置Type参数为1,对照表4-5可知,输入对话框的返回值为数值型数据。
由于InputBox方法本身可以判断输入内容的数据类型是否符合要求,因此第5行代码中循环终止条件只需要判断输入内容的字符长度是否满足要求即可。
示例4-6
利用InputBox方法输入单元格区域引用地址
步 骤 1 在Excel中新建一个空白工作簿文件,按组合键切换到VBE窗口。
步 骤 2 在【工程资源管理器】中插入“模块”,并修改其名称为“InputBoxDemo3”。
步 骤 3 在【工程资源管理器】中双击模块InputBoxDemo3,在【代码】窗口中写入如下代码。
步 骤 4 返回Excel界面,运行SelectRangeDemo过程,将显示【设置背景色】输入对话框。
步 骤 5 将鼠标指针移至B3单元格,按住鼠标左键,拖曳选中B3:C8单元格区域,输入框中将自动填入选中区域的绝对引用地址“$B$3:$C$8”,如图4-7所示。
步 骤 6 单击【确定】按钮,B3:C8单元格区域的背景色被设置为蓝色。
图4-7 利用InputBox方法输入单元格区域引用地址
代码解析如下。
第3行代码中InputBox方法将用户选中区域所代表的Range对象赋值给变量Rng。
注意
对象变量的赋值需要使用关键字Set。
第4行代码判断用户是否已经选中了工作表中的单元格区域。
第5行代码设置相应单元格区域的填充色为蓝色,其中VBA常量vbBlue代表蓝色。
好书推荐
Good Book Recommendation
北京大学出版社
《用ChatGPT与VBA一键搞定Excel》
上一篇:事关医保,余杭入选首批试点!
下一篇:最后一页
X 关闭
X 关闭
5月20日,在建的广西最长跨海大桥——龙门大桥东主塔顺利封顶。至此,龙门大桥东、西两岸主塔全部实现封顶,标志着该桥进入缆索系统施工阶
中新网上海3月30日电 (记者 陈静)上海正面临常态化防控以来疫情形势最严峻复杂的挑战,单日新增阳性感染者数量不断刷新纪录。记者30日获
中新网3月30日电 据国家地震台网官方微博消息,中国地震台网正式测定:3月30日18时14分在新疆和田地区皮山县(北纬36 01度,东经77 89度)发
上海市委常委会今天上午(3月30日)举行会议,听取当前疫情应急处置和核酸筛查相关工作汇报,研究部署下一步疫情防控重点工作。市委书记
(抗击新冠肺炎)江苏无锡一男子隐匿行程轨迹被警方立案侦查 中新网无锡3月30日电 (记者 孙权)3月30日,无锡市在“应检尽检”人员核
(抗击新冠肺炎)官方称吉林市疫情扩散势头得到遏制 中新网吉林3月30日电 (记者 石洪宇)记者30日从吉林市政府新闻办召开的疫情防控
中新网唐山3月30日电 (白云水 孟潮)3月30日,河北省唐山市召开新冠肺炎疫情防控工作新闻发布会通报称,3月29日0时至24时,唐山市新增
浙江省嘉兴市秀洲区新型冠状病毒感染肺炎疫情防控指挥部办公室发布通告: 3月30日上午,秀洲区发现1例新冠肺炎阳性感染者,该感染者
今天(3月30日)下午,新疆乌鲁木齐市人民政府新闻办公室召开疫情防控新闻发布会,通报乌鲁木齐市新冠肺炎疫情和疫情防控最新情况。会上
中新网天津3月30日电 (记者 王君妍)记者30日从天津市水务局获悉,为充分发挥河湖长制优势,近日,天津市将南水北调中线天津干线(天津