VBA常用情景整理

VBA简介

VBA是Visual Basic for Application的缩写,通俗说就是用VB对程序进行控制,使用户可以自行去定义属于自己需求的软件成为可能性。它主要能用来扩展Windows的应用程序功能,特别是Microsoft Office软件。也可说是一种应用程序视觉化的Basic 脚本。该语言于1993年由微软公司开发,实际上VBA是寄生于VB应用程序的版本。微软在1994年发行的Excel5.0版本中,即具备了VBA的功能。

VBA 编程

最近接触到了EXCEL 中的 VBA 编程,将在本阶段稍作整理。

说明
  • 若要保存 宏代码 ,Excel 文件格式要选择“ 启用 宏的工作薄” 切记切记!
  • 打开带宏的工作薄,默认不启用宏,如果要运行需要先点击启用宏
  • 遇到不会写的代码,可以使用录制宏的功能
启用宏
  • 路径: 文件->选项->自定义功能区,勾选”开发工具“(如果没有,说明版本不支持),如下图所示:
    在这里插入图片描述
语法

代码注释 :使用小写的单引号 “ ’ ”
定义变量: 可以 使用Dim 变量名 数据类型 , 也可不定义直接使用

循环
For i = start to end
    代码块
Next
判断
'格式如下,可以有多个ElseIf,条件为真执行Then后的代码块,执行完结束,
'如果为假继续执行ElseIf中的条件判断,如果条件都为假,则执行Else后的代码块
'Else和ElseIF为非必填项,最简单的代码:If 条件 Then 代码 End If

If 条件 Then
    代码块
ElseIf 条件 Then
    代码块
Else
    代码块
End If
调试

在调试阶段,我们需要明确几个概念:

  • 立即窗口, 所见即所得。局限性:显示的是执行结束后的全部结果,一般需要配合 debug.print等使用
  • 本地窗口,显示变量的值。但是一般需要配合stop语句断点前查看
  • 监视窗口,自定义想要监视的变量,需要配合能中断程序的方法一起使用
立即窗口
  • 立即窗口 代码和模块代码,变量,独立,没有任何关系
  • 立即窗口(按Ctrl+G或菜单选择),除了显示debug.print的执行结果外,在调试期间在立即窗口还可以直接输入语句,按回车后显示语句的执行结果,也可以用* ?变量名* 来显示变量的值。举个离子,若有变量str,那么便可以
  • ?str
    ?left(str,5)

在这里插入图片描述

本地窗口

运行时会显示内容
代码运行结束后,便会停止
若要实现,运行时,亦显示本地窗口,只需要在结束前,加一句stop

监视窗口

对需要监视的变量,点右键“添加监视”

如何调试VBA 程序

裤裆里着火–裆燃是 逐句执行,需要按F8,F5 立即执行,F8 分步骤执行
设置断点
加入stop语句 + 查看本地窗口, 监视窗口等

stop语句
  • 在代码中写stop 可以方便的查看,本地窗口里的 跟踪的变量的值
  • stop停止,查看内存中的断点,否则看不到
  • 本地执行,执行过程中才显示
  • 执行完成了就清除本地窗口------要加断点 + 监视窗口才可以实现

在这里插入图片描述

异常处理

在VBA代码中并没有 try catch 异常处理语句,但有one error 语句,和try-catch功能类似

异常处理方法分类
语法功能
on error GoTo 0默认报错,和不使用该语句报错情况相同
on error Resume Next出现异常后忽略异常,继续执行吓一跳语句
on error goto[标志语句]出现异常后,跳转到标志语句位置运行出错后的处理的语句
resume运行完出错后处理的语句
exit sub异常监测结束,选择性退出过程执行
异常处理方法使用
On Error GoTo 0

默认的异常处理方法,该异常处理语句和不使用该语句的报错情况相同,如下图对比:
1、无异常处理的默认情况下
在这里插入图片描述
2、加入异常处理语句
在这里插入图片描述

on error Resume Next

出现异常后会忽略异常,继续执行下一条语句
在这里插入图片描述
在这里插入图片描述

on error goto [标志语句]

当该语句控制区域代码出现异常时,不会将错误显示出来,而是继续执行标志语句后面的代码,具体如下:
在这里插入图片描述
而且可以在标志语句后面添加报错的具体信息:
在这里插入图片描述

on error goto [标志语句]/Exit sub

Exit sub 立即退出,不在执行Exit sub后面的代码。一般与on error goto []搭配使用,具体使用如下:
①、出现错误:
在这里插入图片描述
②、未出现错误
在这里插入图片描述

on error goto[标志语句]/resume [标志语句]

在执行完异常处理后,如果有需要继续返回到源代码中继续执行异常语句下面代码的情况,采用 resume[标志语句],具体实现代码如下:

Sub test()

    On Error GoTo ErrorHandle
    
    Dim num1, num2
    
    num1 = 12
    
    num2 = num1 / 0
    
    MsgBox num2

Continue:
    num1 = num1 / 4
    MsgBox num1
    
Exit Sub

ErrorHandle:
    
    MsgBox "错误代码: " & Err.Number & vbCrLf & _
           "错误描述: " & Err.Description & vbCrLf & _
           "错误来源: " & Err.Source, vbCritical
    num2 = 0
    
    Resume Continue

End Sub

执行时会先出现一个错误信息框
在这里插入图片描述
点确定后会弹出第二个框
在这里插入图片描述

多个异常处理语句的使用

在代码中可以设置多个异常处理的语句,在两个控制语句之间的代码的监测权在上面异常处理语句

Sub test()

    On Error GoTo ErrorHandle
     
    num2 = 5 / 0

NextLogic:
    On Error Resume Next
    num2 = 5 / 0 + 5
    num2 = 6
    MsgBox num2
    
Exit Sub

ErrorHandle:
    
    MsgBox "错误代码: " & Err.Number & vbCrLf & _
           "错误描述: " & Err.Description & vbCrLf & _
           "错误来源: " & Err.Source, vbCritical
    
    Resume NextLogic

End Sub

执行时先显示一个error message
在这里插入图片描述
点确定后,会执行NextLogic中的代码
在这里插入图片描述

  • 23
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值