我发现一个与枢轴表相关的弹出框实际上是一个“警告”框,而不是一个“错误”框。 Excel是否有任何类型的“On Alert GoTo:”,就像“On Error GoTo:”???
我可以完全禁用警报,但是当用户输入在数据表上找不到的错误名称时,我无法警告用户。这也是重新分配的东西,我不希望这样!
答案 0 :(得分:0)
通过数据验证防止警报
确保用户从预定义列表中提供名称的一种方法是使用Excel's built-in data validation。您可以让单元格提供自己的基于动态范围的选项下拉列表。您可以在Excel的数据标签和/或using VBA中进行设置。参考是"动态"因为,如果参考范围发生变化,下拉列表将随之更改,如果参考范围是表的列,则列表将根据该列增大和缩小。
验证失败时要采取的操作也可以自定义,包括条目消息和错误消息。使用VBA时的一个选项是禁用任何操作,而是使用验证的Value
属性来确定运行时的操作。在更改单元格值之前触发验证,因此我的猜测是它将继续您看到的警报。
错误与警报(我们可以处理事件吗?)
关于警告信息是否有On Error
等效的更一般性问题,我认为没有。 VBA一开始并没有出色的错误处理。 On Error
在显示消息框之前处理运行时错误,而不是在显示事件上处理运行时错误,并且我不认为有消息框显示导致任何VBA易于访问的事件。
错误与警报(我们可以使用对象吗?)
听起来你发现Application.DisplayAlerts = False
,我认为这与警报的关系一样多。正如OP提到的那样,转换警报会很好,但仍然以编程方式检查它们。您可以使用Err
对象执行此操作,但如果没有警报对象,我认为您无法通过警报执行此操作。