gpt4 book ai didi

vba - 了解从 MsgBox 返回的响应代码

转载 作者:行者123 更新时间:2023-12-03 03:36:02 25 4
gpt4 key购买 nike

我对编程非常陌生,我刚刚开始学习 VBA 和 Excel。我在这个网站上遇到了这个例子,但我对这段代码有疑问:

我知道变量是使用“Dim”语句声明的,“Message”这里是数据类型为整数的变量。我不太明白的是;这里的“6”和“7”是什么意思?我相信他们来自某个地方。但由于我刚刚开始学习这个程序,我没有任何想法。你能告诉我它是如何最终变成“6”和“7”的吗?我相信这是有一定依据的

Private Sub CommandButton1_Click()
Dim message As Integer
message = MsgBox("Click Yes to Proceed, No to stop", vbYesNoCancel, "Login")
If message = 6 Then
Range("A1").Value = "You may proceed"
ActiveWorkbook.Activate
ElseIf message = 7 Then
ActiveWorkbook.Close
End If

End Sub

感谢您的帮助:-)

=======

谢谢各位的回答,他们非常有帮助。是的,该主题已发布在 super 用户站点中。我被告知这个问题应该属于这里,所以我在读到他们会从 super 用户到 stackoverflow 自动执行此操作后将其发布在这里。

再次感谢

最佳答案

MsgBox 确实返回一个名为 MsgBoxResultEnum(eration),它基本上只是带有“标签”的数值。本例中的 6 和 7 是该枚举的成员,它们映射到答案 YesNo

应尽可能避免使用所谓的“魔数(Magic Number)”来代替常量或枚举。

基本上,您可以将代码重写为:

Dim message As Integer
message = MsgBox("Click Yes to Proceed, No to stop", vbYesNoCancel, "Login")
If message = MsgBoxResult.Yes Then
Range("A1").Value = "You may proceed"
ActiveWorkbook.Activate
ElseIf message = MsgBoxResult.No Then
ActiveWorkbook.Close
End If

可能该枚举被称为 vbMsgBoxResult 或其他...我没有 Office 来验证这一点,只有 Visual Studio。

当我们讨论这个问题时......这可能更容易理解:

Select Case MsgBox("Click Yes to Proceed, No to stop", vbYesNoCancel, "Login")
Case MsgBoxResult.Yes
Range("A1").Value = "You may proceed"
ActiveWorkbook.Activate

Case MsgBoxResult.No
ActiveWorkbook.Close

Case MsgBoxResult.Cancel
' he clicked cancel '

End Select

关于vba - 了解从 MsgBox 返回的响应代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1756513/

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