excel - Excel 是否有 "On Alert"的 VBA 和 "On Error"一样?

标签 excel vba error-handling alert pivot-table

我发现与数据透视表相关的弹出框实际上是“警报”框,而不是“错误”框。 Excel 是否有任何类型的“On Alert GoTo :” 就像它对“On Error GoTo :”一样?

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

最佳答案

通过数据验证防止警报

确保用户从预定义列表中提供名称的一种方法是使用 Excel's built-in data validation .您可以让单元格提供其自己的基于动态范围的选项下拉列表。您可以从 Excel 的数据选项卡和/或通过 using VBA 进行设置。 .引用是“动态的”,因为如果引用范围发生变化,下拉列表会随之变化,如果引用范围是表格的列,那么列表会根据该列增长和缩小。

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

错误与警报(我们可以处理事件吗?)
关于是否存在 On Error 的更一般的问题相当于警报消息,我认为没有。 VBA 一开始就没有出色的错误处理。 On Error在消息框显示之前处理运行时错误,而不是在显示事件上处理,而且我认为没有任何由消息框显示引起的 VBA 易于访问的事件。

错误与警报(我们可以使用对象吗?)
听起来你找到了Application.DisplayAlerts = False ,我认为这与您可以使用警报一样多。正如 OP 所提到的,打开警报但仍然以编程方式检查它们会很好。您可以使用 Err 来处理错误。对象,但是如果没有警报对象,我认为您不能使用警报来做到这一点。

关于excel - Excel 是否有 "On Alert"的 VBA 和 "On Error"一样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34496888/

相关文章:

c# - .Net 核心 : Reading data from CSV & Excel files

excel - 隐藏/取消隐藏特定组

vba - 将完整的 ADO 记录集插入现有的 ACCESS 表而不使用循环

c++ - 初始化无法从const char [3]转换为std::string *

bash - 在Bash脚本中捕获被调用命令的所有错误信号

javascript - Excel 到 html 导出

excel - 将月份名称转换为数字

ms-access - 微软 Access : Command button to export a report to a CSV file

php - 我将php脚本放在html之前,但是我仍然收到已经错误发送的 header

java - Apache POI - 每一张纸的最大条件格式数量