首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Excel VBA解读(164):错误处理技术之On Error语句

对于可预见错误,编写特定代码来处理它们。对于不可预见意外错误,则使用VBA错误处理语句来处理。 VBA,On Error语句用于错误处理。当代码运行时发生错误时,该语句将执行相应操作。...在下面的代码,我们没有使用任何On Error语句,因此VBA默认情况下将使用On Error GoTo 0操作。...如下面的代码所示: Sub TwoErrors() On Error GoTo errH '产生"类型匹配"错误 Error (13) Done: Exit Sub errH...图6 而在标签语句内添加错误处理因前面的错误尚未清除而不会起作用,如下面的代码: Sub TwoErrors() On Error GoTo errH '产生"类型匹配"错误...在下面的代码,我们添加了该语句,这样第二个错误会导致代码跳至errH_Two标签处: Sub TwoErrors() On Error GoTo errH '产生"类型匹配"错误

7.8K20

OushuDB-PL 过程语言-控制结构

如果返回简单类型,那么可以 使用任何表达式,同时表达式类型也将被自动转换成函数返回类型,就像我们赋值描述那 样。如果要返回一个复合类型数值,则必须让表达式返回记录或者匹配行变量。...LOOP LOOP定义一个无条件循环,直到由EXIT或者RETURN语句终止。可选label可以由EXIT和 CONTINUE语句使用,用于嵌套循环中声明应该应用于哪一层循环。 2)....循环,该循环中可以遍历命令结果并操作相应数据,见如下示例: PL/pgSQL还提供了另外一种遍历命令结果方式,和上面的方式相比,唯一差别是该方式将SELECT 语句存于字符串文本,然后再交由...异常捕获: PL/pgSQL函数,如果没有异常捕获,函数会在发生错误时直接退出,与其相关事物也会随之回 滚。我们可以通过使用带有EXCEPTION子句BEGIN块来捕获异常并使其从中恢复。...,只有BEGIN块statements会被正常执行,然而一旦这些语句中有任意一条发生 错误,其后语句都将被跳过,直接跳转到EXCEPTION块开始处。

2.5K20
您找到你想要的搜索结果了吗?
是的
没有找到

VBA: 隐藏模块中出现编译错误解决对策

当代码与此应用程序版本或体系结构兼容(例如文档代码面向 32 位 Microsoft Office 应用程序,但它试图 64 位 Office 上运行)时,通常会发生此错误。...1 此错误原因和解决方案 此错误原因: 当受保护(隐藏)模块内 VBA 代码存在编译错误时会引发此错误。由于模块是受保护状态,因此不会公开具体编译错误。...2 更新旧版本VBA代码 对于 Office 2010 版本之前(VBA 版本 6 和更早版本)编写 VBA 代码,需要修改为 64 位 Office 版本运行,否则在 64 位平台上运行时会导致错误...此外,还必须更新任何包含指针或句柄以及 64 位整数用户定义类型 (UDT),使之使用 64 位数据类型,同时,必须验证所有变量赋值是否正确,以防止发生类型匹配错误。...3 VBA工程密码破解 当受保护(隐藏)模块内 VBA 代码存在编译错误时,由于模块是受保护状态,因此不会公开具体编译错误。此时,需要取消对该模块保护。

11.1K10

让你写出更加优秀代码!

贾言 代码评审歪诗 窗外风雪再大 也有陪伴着你 全文字数:2000字 阅读时间:5分钟 贾言 代码评审歪诗 验幻空越重 命频异长 依轮线日简 接偶正分壮 架构师说, 用20个字描述代码评审内容...-勋 不要在循环中调用服务,不要在循环中做数据库等跨网络操作; 频-品 写每一个方法时都要知道这个方法调用频率,一天多少,一分多少,一秒多少,峰值可能达到多少,调用频率高一定要考虑性能指标,考虑是否会打垮数据库...方法做了两层try...catch, catch块记录日志后什么都没做, 这样用户看不到真正想要内容, 研发也只有看日志才能发现错误, 而“看日志”, 通常只有业务方反馈问题时才会看, 就会导致研发人员发现错误会比现场人员还会晚...接-洁 接口是用来隔离变化,如果一个业务有几种不同形态,但都有相同处理,那么可以定义接口来隔离业务形态不同,服务调用处,通过业务类型字段来获得不同服务类。...而不要实现一个类,然后各个方法中都根据业务类型做if else或更复杂各种判断。 典型示例做法1: ? 典型示例做法2: ?

5.4K20

VBA程序报错,用调试三法宝,bug不存在

有朋友私信问我:猴子,那个「宏按钮」实在是太丑了,看你设置就挺好看,应该如何设置呢? 觉得这位同学很有眼光,既然你已经发现了审美,那么也隐藏了,都分享给你们了。...所谓「断点」就是当VBA遇到手动设置「断点」,运行程序将会自动停止,并「批黄断点处代码」,等待下一步执行指令。...VBA编辑器,依次点选「调试」-「逐语句」,当然最高效方法是使用快捷键「F8」 image.png (4)鼠标悬停变量处,自动显示当前变量代码过程,我们将鼠标悬停在变量上,VBA编辑器将自动提示当前变量取值...(4)「添加监控」让VBA调试更贴心 我们VBA选项卡依次点选「调试」-「添加监控」 image.png 弹出「添加监控」表达式填写需要监视内容即可,然后点击右侧「确定」按钮,比如:本案例需要监控...比如监控是什么,当前监控内容值;监控内容类型,相关内容大家实操后,自行探索查看即可 image.png (5)综合利用上述调试功能,快速查找代码出错原因 当我们将上述代码一行行执行,「i

2.8K00

VBA程序报错,用调试三法宝,bug不存在

有朋友私信问我:猴子,那个「宏按钮」实在是太丑了,看你设置就挺好看,应该如何设置呢? 觉得这位同学很有眼光,既然你已经发现了审美,那么也隐藏了,都分享给你们了。...所谓「断点」就是当VBA遇到手动设置「断点」,运行程序将会自动停止,并「批黄断点处代码」,等待下一步执行指令。...VBA编辑器,依次点选「调试」-「逐语句」,当然最高效方法是使用快捷键「F8」 (4)鼠标悬停变量处,自动显示当前变量代码过程,我们将鼠标悬停在变量上,VBA编辑器将自动提示当前变量取值...(4)「添加监控」让VBA调试更贴心 我们VBA选项卡依次点选「调试」-「添加监控」 弹出「添加监控」表达式填写需要监视内容即可,然后点击右侧「确定」按钮,比如:本案例需要监控「变量i」值变化...比如监控是什么,当前监控内容值;监控内容类型,相关内容大家实操后,自行探索查看即可 (5)综合利用上述调试功能,快速查找代码出错原因 当我们将上述代码一行行执行,「i = 9」发现,根据分类方法

26710

应用|让Excel目录超级自动化

然后一连串工作表来回跳转会异常头痛,所以必然想做一个目录索引以方便跳转,就如同Word里目录索引一样。 那么你有没有为了生成Excel目录而痛苦?...目录工作表第一个单元格A1定义表头:Table of Content Range("A1") = "Table of Content" for循环里i和j含义:目录工作表A列第j个单元格中生成第...使其显示: 可能会遇到问题。...一个是目录工作表后移导致目录混乱,所以要严格控制For循环中i和j关系,并且保证目录工作表位置不变: 第二个可能遇到问题是再次打开Excel后VBA工作问题,主要原因是宏被禁止了。...方案一是打开消息提示窗口,然后每次打开excel时候就会有安全问题提示,直接允许即可: 方案二就是直接允许运行VBA宏,一劳永逸,但是会有安全方面的风险,比如我司就直接不允许修改宏配置:

1.1K30

如何破解Excel VBA密码

然后用普通文本编辑器(是NotePad++)打开这个文件,注意文件类型选“所有文件”。 ? 然后文件里查找“DPB",把它改成“DPx”。注意大小写。(这个是重点) ?  保存修改。...你会遇到一些错误,忽略它们。 ? 然后进入Excel“开发工具”面板,选择“Visual Basic”。又会有一系列错误,忽略它们,直到VBA项目打开。 ? 这时候你已经可以查看VBA代码了。...如果想改变甚至去除原来密码,继续看。 从VBA编辑器“工具”菜单,选择“VBA工程属性...“,然后转到”保护“面板。 ? 密码框输入新密码。...保存VBA文件和Excel文件,关闭Excel。 重新启动Excel并重新打开这个文件,然后进入"开发工具"->"Visual Basic",会提示输入密码。输入你新设置密码。 ?...然后回到VBA编辑器“工具”->"VBA工程属性"->“保护”,去掉密码以及保护选项前面的标记 ? 最后大功告成,也不用什么其他软件。 ?

6.8K20

如何零基础入门Python编程?

TIOBE 排行榜位居第四,是名副其实的人工智能第一语言。风靡另一个原因是,Python有非常多第三方库。...而微软也正在考虑将 Python 作为 Excel 一种官方脚本语言,由于 Python 适用性,使其不仅可以实现VBA功能,也可以代替场函数。...函数和方法是实现数据增删改查基本途径,如果你实际操作遇到数据操作问题,可以具体数据类型下查找相关用法。...流程控制则相对要好掌握一些,条件语句和坏语句不同场景下练习几遍,知道判断和循环实现过程,基本上就没问题了。...对于不同库,内部方法、函数你还需要去熟悉,开始时候先掌握少部分最常用方法,遇到实际问题时候,再去查对应更多用法,这样会更高效。

1.2K40

杂乱文本按”相似度“进行匹配?Power Query实现不难!

最近,碰到好多个问怎么实现两列杂乱文本按“相似度”进行匹配问题。...虽然就理解来看,这个定义并不是太可靠,但也许对于很多人来说,这个定义也能得到一些比较满意匹配结果,所以,就搞一搞试试。...下面,举个简单例子以及Power Query里实现过程,供参考,是否是你想要?又或者说,对于你数据来说,相似度是怎么定义?欢迎留言。...这两列数据比较简单,都添加到PowerQuery里,并在每个表后面增加一列相同内容做合并查询以生成两个表全部可能匹配项(具体操作方法可参考文章《PQ-综合实战:根据关键词确定订单最大体积重量比》,在此赘述...》 3、分组操作及修改代码,参考文章《动态分组合并同类项内容》 4、表某行某列提取,参考文章《重要!

1.3K20

最佳编码实践:搞砸代码10种方法

如果有就不要使用goto(VBA开发中就从未使用过goto语句)。...3、编译器是浪费时间   和其它编译器不同,VBA编译器不会生成一个可以脱离Office独立执行模块,相反,VBA编译器实际上是一个语法检查器,真实运行之前,编译你代码是捕捉语法错误简单有效方法...6、认为带前缀或标签命名约定不好   你创建一个变量时,能通过数据类型和用途识别它是最好,大多数VBA开发人员喜欢添加3个字符前缀,或标签来确定数据类型,例如,用于存储姓氏字符串数据类型可能命名为...◆ Access遇到Null时,Nz()返回一个值,而不是Null。   ◆ 如果你需要处理Null变量,请使用Var数据类型,它是唯一可以存储Null数据类型。...8、是唯一一个使用应用程序的人,因此程序嵌入了密码   密码和用户id值永远都不应该嵌入到代码,你可能是唯一被授权使用该应用程序的人,但这并不意味着就可以直接将密码嵌入到程序,相反,不管是谁要使用这个程序

2K40

Excel编程周末速成班第26课:处理运行时错误

程序运行时发生程序错误称为运行时错误,重要是要理解运行时错误(或只是错误)与VBA程序可能发生其他两类问题之间区别: bug是程序逻辑缺陷,会导致程序产生不正确结果。...当发生错误并且程序包含处理错误代码时,程序将停止并显示一个对话框,其中包含错误说明,如图26-1所示。通常无法从未处理错误恢复,这就是为什么它们如此讨厌原因。...将这些数据类型用于对象引用(而不是使用特定对象类型)使VBA无法提前知道对象方法和属性是什么,从而为各种错误埋下了隐患。...提示:由于VBA过程内容彼此独立,因此可以多个过程错误处理代码使用相同标签。...然后,针对这些潜在错误每一个,测试Err.Number属性。找到匹配项后,采取适合该错误操作。

6.7K30

Workbook工作簿对象基础

Workbooks("vba.xlsm").Worksheets.Count表示统计vba.xlsm工作簿对象普通工作表数量,引用工作簿对象时,表示方法为:Workbooks("vba.xlsm"...(集合count属性前面已经涉及。) 然后for循环中循环索引号数值,workboks(index索引号).name表示不同工作簿名称。循环中立即窗口显示工作簿name名称。...(顺序与工作簿打开顺序一致。) (注意三个表后缀是不同,所以前面说使用名称引用工作簿时候,需要注意工作簿类型后缀。)...workbooks工作簿集合最常见属性count属性,用于统计集合对象数量。用法上面的第二个示例都已经用到。 循环中workbooks.count数值为3,for循环从1指3。...即该工作簿当前是被激活状态,使用activeworkbook来表示。 workbook工作簿对象层级上为application主程序对象,代码可以选择性省略。

2.7K30

Python小白入门学习教程:从沪漂小窝说起

最开始2020年时候,就把项目的源码开源github上,截止到目前一共有30名小伙伴,对此项目点亮star,感谢你们肯定(31是包含自己点赞) 很多小白入门过程遇到了很多问题...由于我个人技术水平有限,在编写文字稿时候也比较仓促,肯定有不对地方,有异议或者错误可以直接联系微信号【mlscoder】,虚心接受学习以及批评指正。...其次Python是一个弱类型语言。比如 a=1 #这是数值类型 a="1" #这是字符串类型 Java这样写,会直接报错,因为Java是一个强类型语言,声明变量数据类型是无法使用。...2.丰富第三方库 选择一个语言时候,其实就是选择一个生态,换句话说,当你遇到一个问题时候,把你问题放在百度上搜一下,如果有前辈已经把相关功能做好了,你只需要Copy下,安装下依赖包,就可以完成你需求就可以了...环境搭建 本教程第二章给了一个参考性质环境搭建范例,供使用和参考。

32830

Python小白入门教程:从沪漂小窝说起

最开始2020年时候,就把项目的源码开源github上,截止到目前一共有30名小伙伴,对此项目点亮star,感谢你们肯定(31是包含自己点赞) 很多小白入门过程遇到了很多问题...正好自己也可以回顾下,之前书写时候比较匆忙,难免可能有错误,重新发布时候再check一篇。...当然由于我个人技术水平有限,在编写文字稿时候,肯定有不对地方,有异议或者错误可以直接提出,都虚心接受学习以及批评指正。...其次Python是一个弱类型语言。比如 a=1 #这是数值类型 a="1" #这是字符串类型 Java这样写,会直接报错,因为Java是一个强类型语言,声明变量数据类型是无法使用。...环境搭建 本教程第二章给了一个参考性质环境搭建范例,供使用和参考。

28020

京东资深架构师代码评审歪诗

在此之前和讯网负责股票基金行情系统研发工作,具备高并发、高可用互联网应用研发经验。 贾言验幻空越重, 命频异长。 依轮线日简, 接偶正分壮。言欢空月虫, 明勋品宜昌。...- 明勋品宜昌 命: 包 / 类 / 方法 / 字段 / 变量 / 常量命名要遵循规范,要名副其实, 这不但可以增加可读性,还可以起名过程引导我们思考方法 / 变量 / 类职责是否合适...: 不要在循环中调用服务,不要在循环中做数据库等跨网络操作 频: 写每一个方法时都要知道这个方法调用频率,一天多少,一分多少,一秒多少,峰值可能达到多少,调用频率高一定要考虑性能指标,...controller方法做了两层try...catch, catch块记录日志后什么都没做, 这样用户看不到真正想要内容, 研发也只有看日志才能发现错误, 而“看日志”, 通常只有业务方反馈问题时才会看...而不要实现一个类,然后各个方法中都根据业务类型做 if else 或更复杂各种判断。

4.7K30

VBA重要强制申明,谁看谁明白

用大白话说,强制申明就是:一段程序,我们明确告诉VBA将要使用哪些变量,如果遇到其他没有说变量,VBA直接报错提醒。 上面的大白话仍然不是很好理解,我们看个例子。...「Dim x, h」表示——告诉VBA接下来程序只使用变量x和变量h,遇到没见过,你就警告窗报错提醒,并用蓝色批注显示它位置,方便修改。...所以,结合这个特点,VBA里使用「强制申明」,主要由以下3个主要优点(小本本记下来,我们下期考): (1)正确使用「强制申明」能够帮助我们快速定位错误代码,发现错误; (2)正确使用「强制申明」能够提升程序运行效率...但是,我们日常工作,经常出现修改这些固定变量值,可是代码多处引用这个固定值,要一个个去修改吗?...1个常量k; (2)常量k定义后被赋值,下文如果重新赋值,请警告窗+批蓝色告诉 image.png [备注] 1.VBA定义一个「常量」需要使用关键字「Const」; 2.

1.5K30

从入门到上手,如何快速学会Python?

因为清晰易读风格,广泛适用性,Python已经成为最受欢迎编程语言之一。TIOBE 排行榜位居第四,是名副其实的人工智能第一语言。 风靡另一个原因是,Python有非常多第三方库。...而微软也正在考虑将 Python 作为 Excel 一种官方脚本语言,由于 Python 适用性,使其不仅可以实现VBA功能,也可以代替场函数。...函数和方法是实现数据增删改查基本途径,如果你实际操作遇到数据操作问题,可以具体数据类型下查找相关用法。...流程控制则相对要好掌握一些,条件语句和坏语句不同场景下练习几遍,知道判断和循环实现过程,基本上就没问题了。...对于不同库,内部方法、函数你还需要去熟悉,开始时候先掌握少部分最常用方法,遇到实际问题时候,再去查对应更多用法,这样会更高效。

1.3K110
领券