当前位置: 首页 > news >正文

VBA实战篇学习笔记02 Err错误处理

文章目录

  • 专题VI 错误处理
    • 课时38 常见错误类型
      • 错误代码13 :类型不匹配
      • 错误代码91: 对象变量或者with变量未设置
      • 错误代码1004: 视具体错误类型而变化
    • 课时39 Err错误处理
      • On Error Resume Next :
      • Resume语句:
      • Resume Next语句:
      • 未知错误:
      • Exit Sub
      • On Error Goto 0

专题VI 错误处理

课时38 常见错误类型

01:47 错误代码13: 类型不匹配
04:54 变体数组与变体类型的区别详细解释
05:55 错误代码91: 对象变量或者with变量未设置
08:14 错误代码1004: 视具体错误类型而变化

错误代码13 :类型不匹配

- 数组与变体类型: 将单元格内容一次性赋值给数组时,必须使用`变体类型数组`,即数组中的每个类型都是变体- 变体数组只是一个可以存放很多变体变量的容器,它本身并不是变体变量,所以无法变为字符串数组- Split拆分结果: 必须赋值给字符串类型的动态数组 - 与Range不同,VBA可以确信Split的拆分结果一定都是字符串,所以要求-  For Each循环中必须使用变体变量作为循环变量

错误代码91: 对象变量或者with变量未设置

错误原因:
-  赋值时,忘写Set
-  引用了 空对象

错误代码1004: 视具体错误类型而变化

错误原因:
- 向Excel发出无法完成的指令 
- 例如: - 1: 应用程序定义或对象定义错误  ⇒  引用不存在的Excel元素(例: 操作的元素(变量)值不存在) - 2: Range的Select方法失效	⇒  尝试不可能的Excel用户操作(例: 激活sheet1,选择sheet2的Range)- 3. 方法Range作用于对象WorkSheet失效 ⇒  使用了不可能存在的地址(例: 单元格没有具体指向那个工作表)

课时39 Err错误处理

03:05 On Error Resume Next
04:38 On Error Goto || On Error Err
05:56 Err全局对象< Number || Description || Clear >
07:41 Resume语句:
08:38 Resume Next 语句:
11:27 Err.Number > 0
12:12 On Error Goto 0

On Error Resume Next :

  • VBA忽略一切错误继续运行(可能导致严重后果)
  • 在使用On Error Resume Next 时,如果if/while判断条件发生错误,VBA仍然会忽略进入判断条件的内部继续执行

Resume语句:

让程序跳转到刚刚发生错误的语句上重新执行⇒ 注意会发生死循环

Resume Next语句:

让程序跳转到刚刚发生错误的语句的下一行上继续执行

未知错误:

  • 不能单纯的使用Else,VBA代码会被继续执行
  • 要使用 Err.Number > 0

Exit Sub

在正常语句之后,错误处理语句之前加上: Exit Sub,则不会自动进入错误处理语句

On Error Goto 0

一旦执行本语句,后面所代码在出错时,都恢复为VBA默认的错误处理方式(弹出错误并中断程序运行)

  • 良好的错误处理方式:
    • 能够区分出错误类型
    • 能够与核心功能代码分开书写
http://www.lryc.cn/news/62018.html

相关文章:

  • 【Git】拉取代码/提交代码
  • 产品预览 | 系统仿真与三维专业场仿真融合——MWORKS模型降阶工具箱
  • 我们都遇到过的这些ajax代码到底什么意思?
  • TiDB实战篇-TiCDC
  • ElasticSearch第十七讲 ES索引别名的使用
  • 第二个机器学习应用:乳腺癌数据集在决策树模型上的挖掘
  • 前端canvas截图酷游地址的方法!
  • 2018年入学,2021年入职
  • python+nodejs+ssm+vue 基于协同过滤的旅游推荐系统
  • 【STL十四】函数对象(function object)_仿函数(functor)——lambda表达式
  • 如何写出高质量的前端代码
  • YOLOv7如何提高目标检测的速度和精度,基于优化算法提高目标检测速度
  • CentOS 7中安装配置Nginx的教程指南
  • Vicuna- 一个类 ChatGPT开源 模型
  • 5.1 数值微分
  • 云计算服务安全评估办法
  • laravel5.6.* + vue2 创建后台
  • Python自动化sql注入:布尔盲注
  • Microsoft Defender for Office 365部署方案
  • 字节岗位薪酬体系曝光,看完感叹:不服真不行
  • 华为OD机试-高性能AI处理器-2022Q4 A卷-Py/Java/JS
  • Vue - 实现垂直菜单分类栏目,鼠标移入后右侧出现悬浮二级菜单容器效果(完整示例源码,详细代码注释,一键复制开箱即用)
  • NVM-无缝切换Node版本
  • CCF-CSP真题《202303-1 田地丈量》思路+python,c++满分题解
  • Autosar-软件架构
  • 8年测开年薪30W,为什么从开发转型为测试?谈谈这些年的心路历程……
  • 滑动奇异频谱分析:数据驱动的非平稳信号分解工具(Matlab代码实现)
  • updateByPrimaryKey和updateByPrimaryKeySelective的区别
  • 【ARM Coresight 4 - Rom Table 介紹】
  • 11111111