gpt4 book ai didi

vba - 完成后如何调用另一个模块而不返回第一个模块?

转载 作者:行者123 更新时间:2023-12-04 22:07:45 25 4
gpt4 key购买 nike

这可能是我在这里问过的最愚蠢的问题,但很难找到这样的问题的答案。

我有一个带有一堆模块/子程序的程序,每个模块/子程序计算一个不同的变量。它们非常复杂,所以我喜欢将它们分开。现在我想要一个较早的模块根据用户输入跳到另一个模块。我以为我可以使用 call (sub name)方法,但随后程序返回到调用行所在的位置并从中断处继续该模块。

例子:

模块一:

Sub NewPracticeSub()

Call otherpracticesub

MsgBox ("We've gone back to this sub... :(")

End Sub

模块 2:
Sub otherpracticesub()

MsgBox ("We're in the other practice sub!")

End Sub

我不希望它返回到模块 1。我该怎么做才能让它将控制权切换到模块 2 而没有它在模块 2 完成后返回到完整的模块 1?

我觉得我只是使用了最令人困惑的语言来解释所有这些,但无论如何感谢您的帮助!

编辑:我知道我可以互换使用模块和子这两个词,而且我知道它们是不同的。我喜欢将每个子(在我的程序中都非常大)保留在自己的模块中,因为这样更容易跟踪它们,并且更容易向其他人解释/演示应用程序流程。

最佳答案

我认为您正在寻找的只是命令 Exit Sub这将使程序离开子程序而不再继续,但是您通常想要这样做的方式是,而不是调用 Sub ,而是调用 Function返回一个 bool 值。

因此,例如:

Public Function MyFunc() as Boolean
....
If [good] MyFunc = True
Else MyFunc = False
End Function

然后你可以按照以下方式做一些事情:
Sub MyCallingSub()
...
If MyFunc = True then Exit Sub
Else ...
End Sub

它只是增加了更多的灵 active 和选择是否要继续在您的潜艇中进一步的能力。

希望这是有道理的。

关于vba - 完成后如何调用另一个模块而不返回第一个模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17028157/

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