excel使用vba校验单元格

学习目标:

使用excel操作vba完成对单元格的校验

学习内容:

例如:

  1. 开启 vba开发环境
  2. 掌握 vba基本语法
  3. 掌握条件语句
  4. 掌握循环语句
  5. 掌握常用函数

学习产出:

演示版本家庭和学生版2019

  1. 开启 vba开发环境
    在这里插入图片描述
    excel默认不开启宏,需手动打开
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    下面两种方式都可以进入开发模式
    在这里插入图片描述
    在这里插入图片描述
    开发界面
    在这里插入图片描述

  2. 掌握 vba基本语法

Public rgold As Range '---定义在模块中,记录从哪个单元格跳出
Public first As Integer '---初始化
Public value As String '---失去焦点的值
Public mRegExp As Object '正则表达式对象
Public result As Boolean '正则匹配结果
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    '单元格改动事件
End Sub
  1. 掌握条件语句

if else:

If first = 0 And end=10 Then
	statement
Else
	statement    
End If

switch case:

Select Case rgold.Column
    Case 2
        statement
    Case 3
        statement   
End Select
  1. 掌握循环语句
For i = 0 To 10
  MsgBox i
Next
  1. 掌握常用函数
    vba常用函数
  2. 成品
    修改数据记得过滤标题行,不然存在不符合校验被清空的风险
Public rgold As Range '---定义在模块中,记录从哪个单元格跳出
Public first As Integer '---初始化
Public value As String '---失去焦点的值
Public mRegExp As Object '正则表达式对象
Public result As Boolean '正则匹配结果
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If first = 0 Then
    '如果第一次进入
        Set rgold = Range("A1")
        Set mRegExp = CreateObject("Vbscript.Regexp")
        For i = 0 To 10
           MsgBox i
        Next
        With mRegExp
        .Global = True
        .IgnoreCase = True
        End With
    End If
    'Cells(1, 1).Value = "1"
    If rgold.Cells.Count > 1 Then
        '如果目标区域含有多个单元格 则退出
        Exit Sub
    End If
    'Cells(1, 2).Value = "2"
    value = Cells(rgold.Row, rgold.Column).value
    If value <> "" Then
        If first = 0 Then
            '如果第一次进入
            first = 1
        Else
            '根据列添加校验
            Select Case rgold.Column
                Case 2
                    With mRegExp
                    .Pattern = "^\d*$"
                    End With
                    result = mRegExp.Test(Trim(value))
                    If result Then
                    Else
                        Cells(rgold.Row, rgold.Column).value = ""
                        MsgBox result
                    End If
            End Select
        End If
    End If
    'Cells(rgold.Row, rgold.Column).Value = "1"
    Set rgold = Target
End Sub

  1. 知识点拓展
    debug,右键运行到光标处执行下一个断点
    在这里插入图片描述
  2. 消息提示
MsgBox "消息提示"
MsgBox "消息警告", vbCritical
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值