100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Excel-VBA 快速上手(十 提示框 可输入的弹出框)

Excel-VBA 快速上手(十 提示框 可输入的弹出框)

时间:2021-05-11 01:47:03

相关推荐

Excel-VBA 快速上手(十 提示框 可输入的弹出框)

文章目录

一、对话框1.1. 弹出对话框1.2. 获取用户对对话框的选择 二、可输入的对话框2.1. InputBox函数2.2. Application.InputBox 方法

一、对话框

1.1. 弹出对话框

对话框是最常见的功能,先看一下相对完整的对话框结构:

由图可见,对话框一般由三部分组成( 窗口标题、提示内容、按钮和图标类别和默认选中),VBA 中调用对话框的

语法也是如此,MsgBox 提示内容,按钮和图标类别和按钮默认选中,窗口标题

窗口标题和提示内容很好理解,重点说一下 <按钮和图标类别和按钮默认选中> 这个参数要怎么传,这个参数其

实由三个值组成,实际使用时以按钮类别 + 图标类别 + 按钮默认选中这种格式传参,下面列出常用的类别

按钮类别

图标类别

按钮默认选中

完整的对话框传参示例,<按钮和图标类别和按钮默认选中> 可以传名称,也可以传值

Public Sub main()'两种方式都可以MsgBox "提示内容", vbYesNoCancel + vbExclamation + vbDefaultButton2, "窗口标题"MsgBox "提示内容", 3 + 48 + 256, "窗口标题"End Sub

1.2. 获取用户对对话框的选择

当我们弹出对话框后,肯定希望获取用户的选择,vba 中,当对话框的按钮被点击后,就会返回按钮的值,我们只

需要判断这个值就可以,vba 中对话框的按钮相对较少,每个按钮都有它固定的值

示例,使用按钮值名称和使用按钮值都可以进行判断,注意:当想获取对话框的返回值时,不要忘记给MsgBox的参数

列表加上()

Public Sub main()Dim value As Integervalue = MsgBox("提示内容", vbYesNoCancel + vbExclamation + vbDefaultButton2, "窗口标题")'使用按钮值进行判断If value = 6 ThenDebug.Print "用户选择了'是'"End If'使用按钮值名称进行判断If value = vbYes ThenDebug.Print "用户选择了'是'"End IfEnd Sub

二、可输入的对话框

这种对话框,可以让用户输入,vba 中有两种常见的使用方式,InputBox函数和Applicatoin.InputBox方法

2.1. InputBox函数

InputBox函数语法:InputBox(可输入的对话框的提示文字, 窗口标题, 输入框的默认值)

对话框的返回值有下面几种情况:

用户输入内容后点击确定按钮,对话框的返回值为用户输入的内容用户没输入内容,但是输入框中有默认值的时候,点击确定按钮,对话框的返回值为输入框中的默认值用户没输入内容,输入框也没有默认值时,点击确定按钮,对话框的返回值为空字符串用户点击取消按钮时,对话框的返回值为空字符串

示例

Public Sub main()Dim valuevalue = InputBox("可输入的对话框的提示文字", "窗口标题", "这是输入框的默认值")Debug.Print valueEnd Sub

效果

2.2. Application.InputBox 方法

这种方式跟前一种相比,主要多了限定输入框内容类型的功能,这种对话框点击取消按钮后返回False

语法为:

Application.InputBox(对话框的提示文字,窗口标题,输入框默认值,输入框 x 坐标,输入框 y 坐标,帮助文档,文档ID,输入框内容类型)

参数看上去非常多,但其实很好理解,对话框的提示文字、窗口标题、输入框默认值这三个参数看描述就知道怎么

传了,输入框 x 坐标、输入框 y 坐标、帮助文档、文档ID这四个参数一般不用传,所以这里也不介绍了,重点就是最后

一个参数 ( 输入框内容类型 ),这个参数有多种类型可供选择,如下:

这些类型动手试一试就能了解,主要记录一下单元格引用类型

单元格引用类型

当选择一个单元格时,对话框返回的是 Range 对象,多个单元格时对话框返回的是二维数组

示例

代码:

Public Sub main()Dim valuevalue = Application.InputBox("对话框显示内容", "输入框标题", "文本框内默认值", , , , , 8)If VBA.IsArray(value) ThenDebug.Print "二维数组:" & value(1, 1)ElseDebug.Print "Range对象:" & valueEnd IfEnd Sub

效果:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。