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



    一、对话框


    1.1. 弹出对话框


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

    对话框结构

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

    窗口标题和提示内容很好理解,重点说一下 <按钮和图标类别和按钮默认选中> 这个参数要怎么传,这个参数其
    实由三个值组成,实际使用时以 按钮类别 + 图标类别 + 按钮默认选中 这种格式传参,下面列出常用的类别

    按钮类别

    名称描述
    vbOKOnly0对话框内显示确定按钮
    vbOKCancel1对话框内显示确定和取消两个按钮
    vbAbortRetryIgnore2对话框内显示中止、重试、忽略三个按钮
    vbYesNoCancel3对话框内显示是、否、取消三个按钮
    vbYesNo4对话框内显示是和否两个按钮
    vbRetryCancel5对话框内显示重试和取消两个按钮

    图标类别

    名称描述
    vbCritical16对话框内显示危险图标
    vbQuestion32对话框内显示询问图标
    vbExclamation48对话框内显示警告图标
    vbInformation64对话框内显示信息图标

    按钮默认选中

    名称描述
    vbDefaultButton10对话框内默认选中第一个按钮
    vbDefaultButton2256对话框内默认选中第二个按钮
    vbDefaultButton3512对话框内默认选中第三个按钮
    vbDefaultButton4768对话框内默认选中第四个按钮

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

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

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


    当我们弹出对话框后,肯定希望获取用户的选择,vba 中,当对话框的按钮被点击后,就会返回按钮的值,我们只
    需要判断这个值就可以,vba 中对话框的按钮相对较少,每个按钮都有它固定的值

    按钮值名称按钮的值描述
    vbOk1确定按钮
    vbCancel2取消按钮
    vbAbort3中止按钮
    vbRetry4重试按钮
    vbIgnore5忽略按钮
    vbYes6是按钮
    vbNo7否按钮

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

    Public Sub main()
      Dim value As Integer
      value = MsgBox("提示内容", vbYesNoCancel + vbExclamation + vbDefaultButton2, "窗口标题")
      '使用按钮值进行判断
      If value = 6 Then
        Debug.Print "用户选择了'是'"
      End If
      '使用按钮值名称进行判断
      If value = vbYes Then
        Debug.Print "用户选择了'是'"
      End If
    End Sub
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    二、可输入的对话框


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

    2.1. InputBox函数


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

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

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

    示例

    Public Sub main()
      Dim value
      value = InputBox("可输入的对话框的提示文字", "窗口标题", "这是输入框的默认值")
      Debug.Print value
    End Sub
    
    • 1
    • 2
    • 3
    • 4
    • 5

    效果

    inputbox函数效果

    2.2. Application.InputBox 方法


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

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

    参数看上去非常多,但其实很好理解,对话框的提示文字、窗口标题、输入框默认值这三个参数看描述就知道怎么
    传了,输入框 x 坐标、输入框 y 坐标、帮助文档、文档ID这四个参数一般不用传,所以这里也不介绍了,重点就是最后
    一个参数 ( 输入框内容类型 ),这个参数有多种类型可供选择,如下:

    描述
    0公式类型
    1数字类型
    2文本类型、既字符串类型
    4布尔值类型
    8单元格引用类型
    16错误值类型

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

    单元格引用类型

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

    示例

    代码:

    Public Sub main()
      Dim value
      value = Application.InputBox("对话框显示内容", "输入框标题", "文本框内默认值", , , , , 8)
      If VBA.IsArray(value) Then
       Debug.Print "二维数组:" & value(1, 1)
      Else
        Debug.Print "Range对象:" & value
      End If
    End Sub
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    效果:

    单元格引用效果

  • 相关阅读:
    Java项目:眼镜商城系统(java+SSM+JSP+jQuery+Mysql)
    Moonriver与Shiden的XCM集成现已上线
    [附源码]java毕业设计校园共享单车系统
    【论文笔记】LoRA LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS
    【树莓派】raspberry pi控制超声波测距
    目标检测YOLO实战应用案例100讲-高速铁路供电安全检测监测系统图像智能识别
    ASP.NET Core 6框架揭秘实例演示[05]:依赖注入基本编程模式
    性能测试常用术语
    数字化转型中的“数字化”
    linux安装opencv
  • 原文地址:https://blog.csdn.net/Ares5kong/article/details/125973222