gpt4 book ai didi

vba - 在执行当前函数之前检查函数

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

我在 VBA 上创建了两个单独的函数。

理想情况下,用户将有 2 个按钮分配给这些宏。一键验证数据myCheck()和另一个按钮提交数据onSubmit() .
myCheck()函数是一个 bool 值,设置为 true 或 false 作为指示是否运行 onSubmit() .

所以,如果用户按下 onSubmit()在验证数据之前,不应将数据提交为 myCheck()已初始化为 False .请参见下面的代码:

Function myCheck() As Boolean

myCheck = False

'Do checking operation
If chkTEP = True And chkNULL = True Then
Output = MsgBox("Validation complete", vbInformation, "Validation")
myCheck = True
ElseIf chkTEP = False And chkNULL = True Then
Output = MsgBox("Double check your TEP combination", vbCritical, "Validation")
myCheck = False
ElseIf chkTEP = True And chkNULL = False Then
Output = MsgBox("There is a blank cell", vbCritical, "Validation")
myCheck = False
Else:
Output = MsgBox("Please make sure spreadhseet is filled correctly", vbCritical, "Validation")
myCheck = False
End If

End Function

从上面可以看出,函数 myCheck 的结果可能是 TRUE 或 FALSE。

之后的下一步是运行另一个函数 onSubmit()。如果 myCheck 为 FALSE,则 onSubmit 将不起作用.. 等等。
Sub onSubmit()

If myCheck = False Then
GoTo FuncEnder
Else
'execute onSubmit function here
FuncEnder:

End If

End Sub

我发现一旦执行 onSubmit(),它就会运行整个函数 myCheck(),而不仅仅是检查其存储的 bool 值。

最佳答案

您的按钮需要链接到“执行”宏。它将首先测试您的检查并仅在 <> False 时执行提交。当您可以将所有这些链接在一起时,不需要 2 个按钮。您将获得相同的所需输出,而用户所需的步骤更少。我还将您的功能更改为“公共(public)功能”

功能一

Public Function myCheck() As Boolean

'YOUR FUNCTION HERE

End Function

功能二
Public Function onSubmit()

'YOUR FUNCTION HERE

End Function


Sub Execute()

If myCheck = False Then Exit Sub
Else
onSubmit

End Sub

关于vba - 在执行当前函数之前检查函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50668764/

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