社交媒体 中使用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 - 傻瓜

编辑的选择

在QuickBooks Online中使用批发帐单 - 虚拟

在QuickBooks Online中使用批发帐单 - 虚拟

QuickBooks Online为会计专业人员提供免费程序。您可以注册批发价格计划,也可以免费使用QBOA。如果你选择这样做(这是一个不错的选择!),你将需要知道如何管理的事情。从您的批发帐单订阅中删除客户有时候,事情并不是这样...

基于零基础的预算与QuickBooks 2012 - 傻瓜

基于零基础的预算与QuickBooks 2012 - 傻瓜

零基预算是一个非常有用和常用的预算策略在使用QuickBooks 2012之前,您应该先了解一下。基于零的预算与顶级预算相反。零基预算从下到上工作。零基预算始于个人收入,费用,资产,负债和所有者权益账户。它检查一个特定的...

在Sage Timeslips中10个有用的键盘快捷键 - 虚拟键盘

在Sage Timeslips中10个有用的键盘快捷键 - 虚拟键盘

键盘快捷键可以是Sage Timeslips 。启动或保存一张单据,将昨天,今天或明天的日期插入日期字段,并用一个或两个按键打开和关闭定时器。以下是十大最爱。按下它做什么Ctrl + N开始一个新的投票,而工作在...

编辑的选择

可以在Photoshop Elements 11中的任意形状图层上绘制多个图形 - 虚拟模型

可以在Photoshop Elements 11中的任意形状图层上绘制多个图形 - 虚拟模型

Photoshop Elements 11中创建的任何形状图层上的图形。您可以按照与选择相同的方式添加,减去,排除重叠和相交形状。请遵循以下步骤:创建第一个形状后,在工具选项:添加到形状区域中选择一个状态按钮:...

使用读卡器将图像下载到Mac上 - 傻瓜

使用读卡器将图像下载到Mac上 - 傻瓜

您的相机可能有一个USB端口,电缆,您可以使用下载您的图像。这种方法使用相机电池电力,也相当缓慢。如果您使用读卡器,则会更快地将图像存入计算机。如果您下载了大量的图像,请考虑购买FireWire读卡器; ...

在Photoshop Elements 10中创建形状图层后,在Photoshop Elements 10中绘制多个图形 - 虚拟形状

在Photoshop Elements 10中创建形状图层后,在Photoshop Elements 10中绘制多个图形 - 虚拟形状

可以在该图层上绘制其他形状。您可以按照与选择相同的方式添加,减去,重叠和相交形状。请记住,当您在元素中创建一个形状时,您正在创建一个基于矢量的元素。向量在数学上描述形状。 ...

编辑的选择

在您的IOS应用程序中添加模态视图 - 在iPhone和iPad上虚拟视图

在您的IOS应用程序中添加模态视图 - 在iPhone和iPad上虚拟视图

对于那些希望用户(或用户想要)在应用程序流之外执行某些操作的情况非常适用。而不是使用带有后退按钮的导航控制器,而是显示一个模式视图,其中的控件允许用户选择一个动作或...

Android应用程序开发:你的Twitter应用程序的文件 - 傻瓜

Android应用程序开发:你的Twitter应用程序的文件 - 傻瓜

,这个Android Studio项目包含大约100个文件和大约170个不同的文件夹。要制作Android Twitter应用程序,您需要专注于该项目的MainActivity。 java文件。但其他一些文件需要注意。 Twitter4J API jar文件Android没有内置的通信支持...