gpt4 book ai didi

vba - 如何最好地构建 Excel VBA 代码以实现维护、清晰度和错误处理

转载 作者:行者123 更新时间:2023-12-02 16:05:35 24 4
gpt4 key购买 nike

假设我想运行一些不错的 VBA 代码,最好将其分解为四个不错的小顺序函数。

Call Init()
Call FirstStep()
Call SecondStep()
Call CleanUp()

但是,如果前三个中的一个因错误或用户取消而失败,那么我想整齐地退出并运行 CleanUp

我从...开始

If Init() Then
If FirstStep() Then
If SecondStep() Then
End If
End If
End If
Call CleanUp

但这很丑陋。

接下来是...

Select Case vbCancel
Case Init()
Case FirstStep()
Case SecondStep()
End Select
Call CleanUp

这是一个改进,但我仍然想知道是否有更好的方法?我知道 VBA 的设计并不是为了结构良好,但尽管如此,我还是想尝试一下。

最佳答案

如果失败是由于运行时错误造成的,@AlexK 的答案是标准答案。

但在某些情况下我们希望:

1-运行正常的操作和检查序列,逻辑是这样的,当其中一个操作通过返回 bool 值告诉我们时,我们必须在某个地方停止

2-避免设置标准错误处理(在某些情况下我们不希望这样)

3-避免大量嵌套的 If(如你所说太丑陋)

Select Case 解决方案满足了这些要求,但这里还有您可能更喜欢的另一种解决方案(意图更清晰):

Do
If Not FirstStep Then Exit Do
If Not SecondStep Then Exit Do
If Not ThirdStep Then Exit Do
If Not FourthStep Then Exit Do
' ...
Loop Until True
Cleanup

关于vba - 如何最好地构建 Excel VBA 代码以实现维护、清晰度和错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43678779/

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