• 窗体和控件(2)——Excel之VBA(13)


    二、窗体

    1. 使用窗体

    窗体的常用属性和方法(UserForm):

    窗体常用属性

    • Enabled 可用性
    • Caption 标题
    • Visible 可见性
    • ShowModal 显示模式

    窗体常用方法

    • Show 显示
    • Hide 隐藏

    窗体常用事件

    • UserForm_Activate 激活
    • UserForm_QueryClose 退出

     

    2. 文本框和复选按钮

    3. 组合框和列表框

    文本框控件TextBox

    文本框常用属性

    • Enabled 可用性
    • Value 返回值
    • Visible 可见性
    • PasswordChar 密码字符
    • TabIndex 按下Tab键时的切换顺序

    复选框控件CheckBox

    复选框常用属性

    • Enabled 可用性
    • Value 返回值
    • Visible 可见性

    复合框控件ComboBox

    ComboBox常用属性

    • Enable Value Visible
    • List 数据源列表

    ComboBox常用方法

    • AddItem 增加一个下拉项目
    • RemoveItem 移除一个项目
    • Clear

    列表框控件ListBox

    列表框常用属性

    • Enable Value Visible
    • ColumnCount 列
    • List 数据源列表

    列表框常用方法

    • AddItem 增加一个下拉项目
    • RemoveItem 移除一个项目
    • Clear

     


    4. 课程小结及课后练习

    本节演示案例

    1)制作登录窗口

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Sheet2.Visible = xlSheetVeryHidden
    Sheet3.Visible = xlSheetVeryHidden
    Sheet2.Protect "test"
    Sheet3.Protect "test"
    End Sub
    
    
    Private Sub Workbook_Open()
    UserForm1.Show
    End Sub
    Private Sub CommandButton1_Click()
    
    If UserForm1.TextBox1.Value = "张三" And UserForm1.TextBox2.Value = "123" Then
        Sheet2.Unprotect Password:="test"
        Sheet2.Visible = xlSheetVisible
        Me.Hide
    ElseIf UserForm1.TextBox1.Value = "李四" And UserForm1.TextBox2.Value = "0000" Then
        Sheet3.Unprotect Password:="test"
        Sheet3.Visible = xlSheetVisible
        Me.Hide
    End If
    
    End Sub

    2)制作程序界面

    3)联想输入功能

    Private Sub TextBox1_Change()
    
    If Len(Me.TextBox1.Value) >= 4 Then
        Me.ListBox1.Clear
        
        For i = 2 To 8
            If InStr(Sheet1.Range("i" & i), Me.TextBox1.Value) > 0 Then
                Me.ListBox1.AddItem Sheet1.Range("i" & i)
            
            End If
            
        
        
        Next
        If Me.ListBox1.ListCount > 0 Then
            Me.ListBox1.Visible = True
        Else
            Me.ListBox1.Visible = False
            
        End If
    
    Else
        Me.ListBox1.Visible = False
    
    End If
    
    End Sub

    需要理解并记住写法的概念
    UserForm1.Show .Hide

    需要理解的概念
    UserForm_Activate 事件 UserForm_QueryClose 事件
    UserForm1.Show .Hide
    TextBox(文本框) CheckBox(复选框) ComboBox(下拉框) ListBox (列表框)
    联想输入的原理

    课后练习

    会员信息查询
    问题:
    完成会员信息查询系统的查询功能。

     

    Private Sub CommandButton1_Click()
    Dim rng As Range
    
    '用find方法做
    Set rng = Sheet1.Range("i1:i1000").Find(Me.TextBox1.Value)
    If rng Is Nothing Then
        MsgBox "无该用户"
    Else
        Me.Label3.Caption = rng.Offset(0, -6)
        Me.Label4.Caption = rng.Offset(0, -5)
        Me.Label6.Caption = rng.Offset(0, -4)
        Me.Label8.Caption = rng
        Me.Label10.Caption = rng.Offset(0, -3)
        Me.Label12.Caption = rng.Offset(0, -2)
        Me.Label13.Caption = rng.Offset(0, -1)
    End If
    
    End Sub
    
    Private Sub ListBox1_Click()
    Me.TextBox1 = Me.ListBox1.Value
    Me.ListBox1.Visible = False
    End Sub
    
    Private Sub TextBox1_Change()
    Dim arr()
    If Len(TextBox1.Value) >= 4 Then
        Me.ListBox1.Clear
        arr = Sheet1.Range("i2:i" & Sheet1.Range("a65536").End(xlUp).Row)
        
        For i = LBound(arr) To UBound(arr)
            If InStr(arr(i, 1), Me.TextBox1.Value) > 0 Then
                Me.ListBox1.AddItem arr(i, 1)
            End If
        Next
        If Me.ListBox1.ListCount > 0 Then
        Me.ListBox1.Visible = True
        End If
    Else
        Me.ListBox1.Clear
        Me.ListBox1.Visible = False
    
    End If
    End Sub
    
    Private Sub UserForm_Activate()
    
    End Sub

    续:

  • 相关阅读:
    跨数据库操作
    Windows 服务
    Linq To DataTable
    嵌入式软件应用程序开发框架浅见
    31.获取当前系统时间
    30 System类
    29. StringBuilder
    28. string类中方法练习
    27 string类中常用的方法列表
    26.String类(1)
  • 原文地址:https://www.cnblogs.com/zeon/p/14017146.html
Copyright © 2020-2023  润新知