Excel是否为“On Alert”提供VBA,就像“On Error”一样?

时间:2015-12-28 16:14:59

标签: excel vba error-handling alert pivot-table

我发现一个与枢轴表相关的弹出框实际上是一个“警告”框,而不是一个“错误”框。 Excel是否有任何类型的“On Alert GoTo:”,就像“On Error GoTo:”???

我可以完全禁用警报,但是当用户输入在数据表上找不到的错误名称时,我无法警告用户。这也是重新分配的东西,我不希望这样!

1 个答案:

答案 0 :(得分:0)

通过数据验证防止警报

确保用户从预定义列表中提供名称的一种方法是使用Excel's built-in data validation。您可以让单元格提供自己的基于动态范围的选项下拉列表。您可以在Excel的数据标签和/或using VBA中进行设置。参考是"动态"因为,如果参考范围发生变化,下拉列表将随之更改,如果参考范围是表的列,则列表将根据该列增大和缩小。

验证失败时要采取的操作也可以自定义,包括条目消息和错误消息。使用VBA时的一个选项是禁用任何操作,而是使用验证的Value属性来确定运行时的操作。在更改单元格值之前触发验证,因此我的猜测是它将继续您看到的警报。

错误与警报(我们可以处理事件吗?)
关于警告信息是否有On Error等效的更一般性问题,我认为没有。 VBA一开始并没有出色的错误处理。 On Error在显示消息框之前处理运行时错误,而不是在显示事件上处理运行时错误,并且我不认为有消息框显示导致任何VBA易于访问的事件。

错误与警报(我们可以使用对象吗?)
听起来你发现Application.DisplayAlerts = False,我认为这与警报的关系一样多。正如OP提到的那样,转换警报会很好,但仍然以编程方式检查它们。您可以使用Err对象执行此操作,但如果没有警报对象,我认为您无法通过警报执行此操作。

相关问题