我对编程很陌生,我刚刚开始学习 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
感谢您的帮助:-)
=======
谢谢大家的回答,他们非常有帮助。是的,该主题已发布在超级用户站点中。我被告知这个问题应该属于这里,所以我在读到他们会从超级用户到 stackoverflow 自动执行此操作后将其发布在这里。
再次感谢
MsgBox
确实返回一个Enum(eration)
called MsgBoxResult
,基本上就是带有“标签”的数值。在本例中,6 和 7 是该枚举的成员,它们映射到答案Yes
and No
.
应尽可能避免使用所谓的“幻数”而不是常量或枚举。
基本上,您可以将代码重写为:
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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)