社交媒体 中使用OnError语句如何在Excel 2016 VBA - 傻瓜

中使用OnError语句如何在Excel 2016 VBA - 傻瓜

目录:

Anonim

当您需要处理Excel VBA中的错误时,可以使用OnError语句。但是,首先需要了解一些事情。您可以通过三种方式使用On Error语句。

语法 执行的操作
On Error GoTo label 执行此语句后,VBA将在指定标签后的

语句处继续执行。您必须在标签后面包含冒号

,以便VBA将其识别为标签。

On Error GoTo 0 执行此语句后,VBA恢复正常的

错误检查行为。在使用其中一个

其他On Error语句之后,或者当您要删除过程中的错误处理

时,请使用此语句。

On Error Resume Next 执行此语句之后,VBA将忽略所有错误

,然后继续执行下一条语句。

<! - 1 - >

在出现错误后继续

在某些情况下,只需要在发生错误时正常结束。例如,您可能会显示一条描述错误的消息,然后退出该过程。 (前面显示的EnterSquareRoot5示例使用这种技术。)在其他情况下,如果可能的话,您希望从错误中恢复。

要从错误中恢复,您必须使用Resume语句。这将清除错误情况并让您在某个位置继续执行。您可以通过三种方式使用Resume语句。

语法 执行的操作
继续执行 继续执行导致错误的语句。如果你的错误处理代码纠正了这个问题,那么使用

,并且可以继续

继续执行 执行继续执行紧跟在导致错误的

语句之后的语句。这基本上忽略了

错误。

继续 标签 继续执行您指定的 标签 。
<!发生错误后,下面的示例使用Resume语句:

Sub EnterSquareRoot6()Dim Num As Variant Dim Msg As As String Dim Ans As Integer TryAgain:'设置错误处理On Error GoTo BadEntry'提示值Num = InputBox(“输入值”)如果Num =“”Then Exit Sub'插入平方根ActiveCell。 Value = Sqr(Num)Exit Sub BadEntry:Msg = Err。数字&“:”&错误(错误号码)消息=消息&vbNewLine&vbNewLine消息=消息&“确保范围被选中,”Msg = Msg&“表不受保护,Msg = Msg&”和你输入一个非负值。 “Msg = Msg&vbNewLine&vbNewLine&”再试一次? “Ans = MsgBox(Msg,vbYesNo + vbCritical)If Ans = vbYes Then Resume TryAgain End Sub

这个过程有另一个标签:TryAgain。如果发生错误,则继续执行BadEntry标签,代码显示下面的消息。如果用户通过单击“是”进行响应,则“恢复”(Resume)语句将启动,执行将跳转回TryAgain标签。如果用户单击否,过程结束。

如果发生错误,用户可以决定是否再次尝试。

请注意,错误消息还包含错误编号以及“官方”错误描述。

在继续之前,Resume语句清除错误条件。要看到这一点,请尝试用下面的语句代替上例中的倒数第二个语句:

如果Ans = vbYes Then GoTo TryAgain

如果使用GoTo而不是Resume,则代码无法正常工作。为了演示,输入一个负数。你得到错误提示。单击是再次尝试,然后输入

另一个 负数。第二个错误没有被捕获,因为原来的错误条件没有被清除。 错误处理概述

为了帮助您保持所有错误处理业务的顺利进行,下面是一个快速而简洁的总结。错误处理代码块具有以下特征:

它在On Error语句中指定的标签之后立即开始。只有发生错误时,才能通过宏访问它。这意味着您必须在标签之前立即使用诸如Exit Sub或Exit Function之类的语句。

  • 它可能需要一个Resume语句。如果在发生错误时选择不中止过程,则必须在返回主代码之前执行Resume语句。

  • 知道何时忽略错误

  • 在某些情况下,忽略错误是完全可以的。这就是On Error Resume Next语句发挥作用的时候。

以下示例循环选择范围中的每个单元格,并将该值转换为其平方根。如果所选单元格中包含负数或文本,则此过程将生成错误消息:

Sub SelectionSqrt()Dim cell As Range If TypeName(Selection)<>“range”Then Exit Sub For Each cell In Selection cell。 Value = Sqr(cell。Value)Next cell End Sub

在这种情况下,您可能只想跳过包含无法转换为平方根的值的单元格。您可以通过使用If-Then结构来创建各种错误检查功能,但您可以通过简单地忽略发生的错误来设计一个更好(更简单)的解决方案。

下面的例程通过使用On Error Resume Next语句完成此操作: SelectionSeq()Dim单元格作为范围如果TypeName(选择)<>“范围”然后Exit Sub On Error Resume Next对于每个单元格In选择细胞。 Value = Sqr(cell。Value)Next cell End Sub

通常,如果您认为错误对您的任务无害或无关紧要,则可以使用On Error Resume Next语句。

中使用OnError语句如何在Excel 2016 VBA - 傻瓜

编辑的选择

古饮食计划:吃什么早餐 - 假人

古饮食计划:吃什么早餐 - 假人

一个发展的挑战早餐的一个古人(洞穴人)饮食膳食计划重新定义了哪些食物适合早餐的想法。谷类或鸡蛋和面包的非古式“传统”早餐不会削减它。不要试图将你的旧餐理念改造成新的古代格式,你可以尝试吃任何东西...

如何构建IOS应用程序

如何构建IOS应用程序

在Xcode中构建iOS应用程序意味着编译所有源代码代码文件在项目中。在构建和运行从模板创建的项目时,看到您所得到的结果真是令人兴奋。构建和运行应用程序相对简单;只需按照以下步骤操作:在工具栏中,选择一个方案...

编辑的选择

如何计算企业的盈亏平衡点 - 傻瓜

如何计算企业的盈亏平衡点 - 傻瓜

以下是您想知道的关于您拥有的业务或操作:您想知道公司必须达到的销售收入才能达到收支平衡。换句话说,你想知道产生零利润的销售收入数量,而不是零损失。幸运的是,无论是这种计算,还是...

如何使用QuickBooks 2014评估财务费用 - 傻瓜

如何使用QuickBooks 2014评估财务费用 - 傻瓜

您可以告诉QuickBooks在逾期时评估财务费用客户发票。为此,您首先设置财务费用计算规则。完成此操作后,您可以通过选择QuickBooks命令轻松评估逾期金额的财务费用。设置财务费用规则要设置财务费用规则,请选择...

如何计算QuickBook 2012中的盈亏平衡点 - 傻瓜

如何计算QuickBook 2012中的盈亏平衡点 - 傻瓜

QuickBooks 2012允许您计算产品盈亏平衡点快速简单。盈亏平衡点显示产生零利润和零损失的销售收入。记得进行利润 - 成本 - 成本分析的公式吗?它是这样的:利润=(销售收入x毛利率百分比) - 固定成本而不是计算利润的基础上...

编辑的选择

如何更改您的计算机的用户帐户图片 - 傻瓜

如何更改您的计算机的用户帐户图片 - 傻瓜

不仅每个使用您的计算机的人都有他自己的用户帐户,但每个用户都可以添加一个图片到用户帐户。所以,如果你不喜欢与你的用户帐户相关的图片,你运气好 - 你可以改变它。无论你选择什么样的图片,它都会出现在欢迎...

:如何更改您的计算机的桌面背景 - 傻瓜

:如何更改您的计算机的桌面背景 - 傻瓜

Windows桌面为您提供灵活性使其个性化。您可以在桌面上显示您最喜欢的孙子的照片,或使用您选择的颜色作为背景。改变电脑桌面背景的可能性几乎是无止境的。您甚至可以应用桌面主题,它应用了多种颜色和...

为老年人:如何选择一个桌面主题为您的计算机 - 虚拟

为老年人:如何选择一个桌面主题为您的计算机 - 虚拟

窗口内置桌面主题,您可以应用快速更改您的计算机的桌面的外观。这些桌面主题保存了包括菜单外观,背景颜色或图案,屏幕保护程序,甚至鼠标光标和系统声音的元素集。主题保存包含菜单外观,背景颜色或图案的元素集合...