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

Excel VBA解读(163):错误处理技术之概述

学习Excel技术,关注微信公众号: Excelperfect 在VBA代码中,我们经常会看到类似于On Error Resume Next这样的语句,这是编译器在代码遇到错误时自动处理的语句。...概述 错误处理是指为处理应用程序运行时发生错误而编写的代码。这些错误通常是由编写代码的人无法控制的事情所引起,例如文件丢失、数据库不可用、数据无效等。...VBA错误类型 在VBA中,有3类错误: 1.语法错误 2.编译错误 3.运行时错误 使用错误处理来处理运行时错误。...过程不存在 5.使用错误参数调用Sub过程和Function过程 6.在要求声明变量时未声明变量 下图2所示,当If语句没有对应的End If语句时,如果运行代码就会发生编译错误。...还有一些常见的运行时错误,包括数据库不可用、用户输入无效数据、使用的单元格内容应为数字但实际上是文本,等等。 正如我们所看到的,错误处理的目的是处理运行时发生的错误

3.7K10

VBA专题10-21:使用VBA操控Excel界面之禁用和启用控件、组和选项卡

过程,当打开工作簿或者其中一个两个控件被无效时调用这个过程。...在Custom UI Editor中保存该文件,首次在Excel中打开该文件时,将会出现关于Initialize和GetEnabledAttnSh过程提示的错误消息,因为在标准的VBA模块中仍然没有这两个回调过程...单击“确定”关闭这些错误消息。...每个过程都调用RefreshRibbon过程来使所有的三个控件无效。参见下面的RefreshRibbon过程。是否启用(禁用)某控件取决于在RefreshRibbon中参数传递的值。...一旦使这些控件无效,就调用GetEnabledAttnSh过程,遍历共享这个相同回调的所有无效的控件。如果控件的id与参数值匹配,就启用该控件。否则,禁用该控件。

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

VBA专题10-15:使用VBA操控Excel界面之在功能区中添加自定义标签控件

getLabel是一个回调属性,赋值VBA过程的名称,本例中为getLabel1回调过程。该过程在首次打开该工作簿时或者在使该控件无效时执行。...上述3种方法不仅能够使控件无效,而且可以使组和选项卡无效。我们称它们(控件、组和选项卡)为元素。元素可能有多个回调属性。...一旦使某元素无效,任何与该元素相关的数据就被销毁,并且通过调用所有的在XML代码中声明的该元素的回调属性引用的VBA过程来自动刷新该元素。因此,要提高效率,应仅使必需的元素无效。...在后面的文章中,将会列举使元素无效的例子。 5. 单击工具栏中的Validation按钮来检查是否有错误。 6. 单击Generate Callbacks按钮。...因为是第一次在Excel中打开该文件,会得到关于getLabel1的错误消息的提示,因为在标准的VBA模块中还没有getLabel1回调过程。此时,单击“确定”关闭错误消息。 9.

2.2K10

db2 terminate作用_db2 truncate table immediate

类代码 07:动态 SQL 错误 SQLSTATE 值 含义07001 对于参数标记的数目来说,主机变量的数目不正确。07002 调用参数列表控制块无效。...07003 在 EXECUTE 语句内标识的语句是一条 select 语句,未处于已预编译状态。07004 动态参数需要 USING 子句 INTO 子句。...42604 检测到无效数字字符串常量。42605 为标量函数指定的参数数目无效。42606 检测到无效十六进制常数。42607 列函数的操作数无效。...42604 检测到无效数字字符串常量。 42605 为标量函数指定的参数数目无效。 42606 检测到无效十六进制常数。 42607 列函数的操作数无效。...428E2 目标键参数数目类型与索引扩展名的键变换函数的数目类型不匹配。 428E3 索引扩展名中函数的参数无效

7.5K20

答案:Excel VBA编程问答33题,继续……

2.VBA程序如何修改双击间隔? 不能。双击间隔是Windows操作系统设置。 3.是非题:KeyDown事件过程可以使用KeyCode参数判断用户输入的是4还是$。 错误。...调用具有fmTop参数的隐藏控件的ZOrder方法。 7.如何防止用户通过制表键将焦点移到控件上? 将控件的TabStop属性设置为False。 8.如何命名事件过程?...16.是非题:保护工作簿的密码可防止用户查看你的VBA代码。 错误。必须使用“项目工程属性”对话框中的“保护”选项卡,将VBA工程与设置给工作簿的任何密码分开锁定。...错误。监视值仅在程序进入中断模式时才更新。 23.VBA如何将bugs报告给程序员? 不会。除了测试程序外,没有其他方法可以找到bugs。...25.自定义VBA类的代码放在哪里? 在一个类模块中。 26.是非题:自定义VBA类可以包含可视化界面。 错。自定义VBA类不能包含视觉化元素。 27.如何创建只读属性

4.2K20

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

下面是一些常见的错误观念,导致人们选择了错误的捷径,虽然其中一部分只适用于VBA某种IDE,但大多数都是通用的。...包括一个else子句并不难,并且还可以提供一层额外的错误捕捉机会,你可以显示一般性错误,让用户知道预期的决定行动不会发生,或是通过日志记录下来,用电子邮件发送给管理员内部开发人员,总之想让事件引起注意...3、编译器是在浪费时间   和其它编译器不同,VBA编译器不会生成一个可以脱离Office独立执行的模块,相反,VBA编译器实际上是一个语法检查器,在真实运行之前,编译你的代码是捕捉语法错误简单有效的方法...6、认为带前缀标签的命名约定不好   你在创建一个变量时,能通过数据类型和用途识别它是最好的,大多数VBA开发人员喜欢添加3个字符的前缀,标签来确定数据类型,例如,用于存储姓氏的字符串数据类型可能命名为...◆ 传递的值和参数的简短定义。   ◆ 对一些非常规的代码写法,附上解释和想法。

2K40

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

通过64位office软件打开早期的excel文件,如果代码中存在早期面向32位office编写的VBA代码,可能会存在上述的编译错误。...1 此错误的原因和解决方案 此错误的原因: 当受保护(隐藏)的模块内的 VBA 代码中存在编译错误时会引发此错误。由于模块是受保护状态,因此不会公开具体的编译错误。...可能的解决方案: (1)如果您具有访问文档项目中的 VBA 代码的权限,请先取消对该模块的保护,然后再次运行该代码以查看具体的错误。...3 VBA工程密码破解 当受保护(隐藏)的模块内的 VBA 代码中存在编译错误时,由于模块是受保护状态,因此不会公开具体的编译错误。此时,需要取消对该模块的保护。...参考资料: [1] 隐藏模块中出现编译错误:(https://docs.microsoft.com/zh-cn/office/vba/language/reference/user-interface-help

11.1K10

VBA专题10-23:使用VBA操控Excel界面之添加动态菜单

学习Excel技术,关注微信公众号: excelperfect 在本系列后面的示例程序中,你将会看到如何使用项目和带图像的库控件通过getItemLabel和getItemImage回调属性引用的VBA...通过该控件的getContent属性引用的VBA过程,在运行时为菜单内容构建XML代码。...如果要保留条件,可以在其被无效前存储其状态,然后在重新创建菜单时恢复其状态。这可以通过使用模块级的变量和getPressed回调属性来实现。...在GetMenuContent过程中加入为getPressed属性VBA代码: Select Case ActiveSheet.Name Case "Data"...当VBE显示标准的错误消息框(因为一个未处理的运行时错误发生),可以单击消息框中的结束按钮。 关闭该工作簿文件。 如果没有未处理的错误,你可以只执行前两种方法,而用户可以仅执行最后一种方法。

6K20

Windows错误码大全error code

0118 校验写入的开关参数值不正确。 0119 系统不支持所请求的命令。 0120 该系统上不支持此功能。 0121 标记已超时。 0123 文件名、目录名卷标语法错误。...0159 线程标识符的地址错误。 0160 传到 DosExecPgm 的参数字符串错误。 0161 指定的路径无效。 0162 信号已挂起。 0164 系统无法创建其他线程。...1345 指定的属性无效指定的属性与整个组的属性不兼容。 1346 或者没有提供所申请的模仿级别,或者提供的模仿级别无效。 1347 无法打开匿名级安全性符号。...1355 指定的域不存在联系不上。 1356 指定的域已经存在。 1357 试图超过每个服务器域数目的极限。 1358 由于严重的媒体错误磁盘的数据结构损坏,无法完成所请求的操作。...1823 指定的错误不是有效的 Windows RPC 错误代码。 1824 已分配仅在本机上有效的 UUID。 1825 产生了特定的安全包错误。 1826 没有取消线程。

9.7K10

听GPT 讲Rust源代码--compiler(30)

CharEscape:表示字符字面量中的转义字符无效。 Byte:表示字节字面量的格式错误。 ByteEscape:表示字节字面量中的转义字符无效。 Int:表示整型字面量的格式错误。...InvalidIntSuffix:表示整型字面量的后缀无效。 Str:表示字符串字面量的格式错误。 StrCharEscape:表示字符串字面量中的转义字符无效。...ByteStr:表示字节字符串字面量的格式错误。 ByteStrCharEscape:表示字节字符串字面量中的转义字符无效。...Sized>是一个泛型结构体,它表示指向某个Sized不确定大小的类型T的指针。这种结构体常用于管理动态分配的内存,以及在运行时确定类型,并提供对类型T的访问。在Rust编译器中,P<T: ?...这些枚举用于描述特定错误类型的额外信息建议,以提供更全面的错误报告。

6210

讲解cl: 命令行 error D8021 :无效的数值参数“Wno-cpp” 和 cl: 命令行 error D8021 :无效的数值参数“Wno-unu

C++编程时,我们可能会遇到名为"cl"的命令行编译器和错误消息"D8021: 无效的数值参数"。...问题描述当我们在使用cl命令行编译编译C++代码时,可能会遇到以下错误消息之一:plaintextCopy codecl: 命令行 error D8021 :无效的数值参数“/Wno-cpp”plaintextCopy...通过在你的代码中添加这些#pragma指令,你可以有效地避免使用不被编译器支持的无效参数,从而解决编译错误"D8021: 无效的数值参数"。...当我们在使用该参数时,编译器将不再产生与这些警告相关的错误消息警告信息。 预处理器是C++编译过程中的一个重要阶段,它对源代码进行转换和处理。...为了解决这些错误,我们需要从编译命令中删除这些无效参数。通过进入项目属性菜单、找到C/C++选项、然后删除命令行中的无效参数,我们可以解决这些错误

1.2K10

【TypeScript 演化史 — 第二章】基于控制流的类型分析 和 只读属性

: // 错误:赋值表达式的左侧 // 不能是常量只读属性 origin.x = 100; 一个更现实的例子 虽然上面的示例可能看起来有些做作(确实是这样),但是请考虑下面这样的函数: function...它只被编译器用来检查非法的属性分配。一旦TypeScript代码被编译成JavaScript,所有readonly的概念都消失了。您可以随意摆弄这个小示例,看看如何转换只读属性。...因为 readonly 只是一个编译时工件,所以没有针对运行时的属性分配的保护。...它只被编译器用来检查非法的属性分配。一旦TypeScript代码被编译成JavaScript,所有readonly的概念都消失了。您可以随意摆弄这个小示例,看看如何转换只读属性。...因为 readonly 只是一个编译时工件,所以没有针对运行时的属性分配的保护。

2K10

VBA的vbNullString认识API参数传递

str = "新建文本文档.txt - 记事本" Debug.Print str, FindWindow(vbNullString, str)End Sub 这个错误是只使用VBA的人容易犯的吧...API String类型参数传递 从帮助文件中知道,vbNullString 值为 0 的字符串,如果真的传递0过去,很明显也是不行的,数据类型就不对,所以这个只是一个标志,VBA编译器会具体去处理这种情况...对API的参数传递,VBA为我们做了太多了,以至于使用者不需要明白底层原理就可以简单的使用。 如果了解一点C语言的知识,我们就能大概理解了。...在C语言里,并没有String类型,只有Char类型(也就是VBA里的Byte),而API里的String类型其实就是Char数组的指针,VBA在API参数传递的时候,碰到String类型,它又帮我们做了什么...而在FindWindow里,VBA编译器自动为使用者做了处理,所以我们在使用API的时候,根本就不需要关注这个。这也容易造成VBA使用者不清楚原理,出现错误的时候很难找到具体的原因。

1.7K10

Excel VBA编程

VBA中的运算符 算数运算符 比较运算符 通配符 逻辑运算符 VBA内置函数 执行程序执行的基本语句结构 if语句 select case语句 for 循环 for each…next语句循环处理集合数组中的成员...访问count属性,获得工作簿中工作表的数目 range对象 用range属性引用单元格 用cell属性引用单元格 引用整行单元格 引用整列单元格 使用union方法合并多个单元格区域 range对象的...若需要填充的单元格数目不够数组长度,那么会按照顺序依次填充。...在VBA中,过程的参数传递主要有两种形式:按引用传递和按值传递。...,隐藏或者显示工作表 worksheets("worksheet_name").visible =False or True 访问count属性,获得工作簿中工作表的数目 worksheets.count

45K21

GetLastError错误代码

〖86〗-指定的网络密码错误。   〖87〗-参数错误。   〖88〗-网络上发生写入错误。   〖89〗-系统无法在此时启动另一个进程。   〖100〗-无法创建另一个系统信号灯。   ...〖117〗-应用程序制作的 IOCTL 调用错误。   〖118〗-验证写入的切换参数错误。   〖119〗-系统不支持请求的命令。   〖120〗-此功能只被此系统支持。   ...〖159〗-线程标识的地址错误。   〖160〗-传递到 DosExecPgm 的参数字符串错误。   〖161〗-指定的路径无效。   〖162〗-信号已暂停。   ...〖212〗-段已锁定且无法重新分配。   〖214〗-连到该程序动态链接模块的动态链接模块太多。   〖215〗-无法嵌套调用 LoadModule。   〖230〗-管道状态无效。   ...〖998〗-内存分配访问无效。   〖999〗-错误运行页内操作。   〖1001〗-递归太深;栈溢出。   〖1002〗-窗口无法在已发送的消息上操作。

6.2K10

网站HTTP错误状态代码及其代表的意思总汇

502 Web 服务器作为网关代理服务器时收到无效的响应。 WIN2003 SERVER IIS6.0 ASP 错误解析 事件 ID 描述 0100 内存不足。无法分配所需的内存。...0130 File 属性无效。File 属性 '|' 不能以斜杠反斜杠开始。 0131 不允许的父路径。Include 文件 '|' 不能包含 '..' 来表示父目录。 0132 编译错误。...0173 路径字符无效。MapPath 方法的 Path 参数中指定了一个无效字符。 0174 多个路径字符无效。MapPath 方法的 Path 参数中指定了无效的 '/' '\\'。...0214 路径参数无效。Path 参数超出允许的最大长度。 0215 ENABLESESSIONSTATE 属性的值非法。...0237 Cookie 规范无效。METADATA 标记包含无效的 NAME 参数或缺少该参数。 0238 属性值丢失。没有为 '|' 属性指定值。 0239 无法处理文件。

5.7K20
领券