gpt4 book ai didi

vba - 如何协调不同模块中的err.number,VBA中的类模块

转载 作者:行者123 更新时间:2023-12-03 08:39:10 24 4
gpt4 key购买 nike

我正在编写我最大的 VBA (Excel) 项目。它包括几个类、模块。其中一些有错误处理,引发错误。如何协调错误编号?
现在我在所有这些模块中都有一个独立的错误值枚举。我搜索了如何在项目级别上协调这些数字。
到目前为止我发现的是 Err.Number=vbObjectError + 513 + xxx,但如果它是否是唯一的,则什么都没有。恐怕我在这里错过了什么。

我的一些担忧:
如果 class1 和 class2 具有相同的 Err.Number (并且具有不同的描述),这是否有问题?
如果是这样,那么防止它的最佳做法是什么? (如果枚举在不同的模块中,那么我有一定的依赖性。)
谢谢你的指导。

最佳答案

错误编号分为两类。

  • 系统错误(数字 0–512)。您不能使用它们,因为它们是为系统保留的。
  • 用户定义的错误(编号 513–65535)。

  • Visual Basic errors (both Visual Basic-defined and user-defined errors) are in the range 0–65535. The range 0–512 is reserved for system errors; the range 513–65535 is available for user-defined errors.


    因此,每个错误编号(及其描述)必须是唯一的,对应于单个错误。
    例如:
  • 错误号:1001,描述:正在下雨。
  • 错误号:1002,描述:下雪了。

  • 这意味着您必须构建和维护自定义错误列表,并根据情况提出适当的错误。例如,如果您希望输入介于 1-10 之间并且用户输入 20,您应该提出自定义错误“超出范围”等。
    最后,错误处理是应用程序的重要组成部分,所以不要担心依赖关系。 VBA 附带 Err对象来处理错误。所以是的,它依赖于它,但它需要它;它是库的一部分,它的工作是处理错误。
    阅读文档,它非常有帮助。
    VBA Error Raise

    关于vba - 如何协调不同模块中的err.number,VBA中的类模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63683178/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com