【发布时间】:2018-04-04 09:01:37
【问题描述】:
我在 Office 2016 下有一个 Outlook VBA 项目。
在运行给定的Sub 时,我得到了一个Outlook VBA error 440: “Array Index out of Bounds”(我还无法隔离一个最小的、可重现的案例)。
OTOH、official documentation 和许多其他来源指出错误 440 用于"Automation error"。
此外,如果我在即时窗口Err.Raise(440) 中发布,我会得到Automation error。
这对我来说似乎很奇怪。
我希望Err.Number 的给定值与Err.Description 的单个值相关联。
我的一般问题是(不管我的具体情况如何):
Err.Number 的相同值可以与Err.Description 的两个不同值相关联吗?在什么情况下?
我找不到处理这种明显模棱两可的官方文档。
PS:这个 OP 对“不清楚你在问什么”投了两票... 我想我不能更清楚地表达我的问题。
【问题讨论】:
-
您是否在同一个测试用例中收到不同的错误消息?
-
这个潜艇有多大。是否可以在此处发布 sub 的源代码。此外,如果您单步执行子程序,您是否能够找到引发错误的行。
-
@JamesLingham - 不。我在运行时得到这个的所有情况都是
Array Index out of Bounds。 -
@Alok - 不,这是不可能的。但除了代码本身,我还没有找到产生错误的系统方法。我的项目在文件夹之间移动电子邮件/对话,所以每当我成功运行它时,我的电子邮件都会改变。
-
@sancho.s 当错误弹出时,你有“调试”选项吗?从它的声音来看,逻辑存在错误,它试图访问一个不再存在的数组成员。正如你所说的宏移动电子邮件,我猜你从数组/集合中删除了一个项目,这使得数组中的索引移动并且最后一个无法访问。您能否提供一些代码来说明循环是如何定义的,以及大致执行了什么样的操作?
标签: vba error-handling runtime-error