【问题标题】:Add Title to message box with several lines将标题添加到带有多行的消息框
【发布时间】:2018-12-10 19:25:53
【问题描述】:

我有一个关于消息框,当用户按下按钮时,会打开一个消息框并在几行上打印有关该软件的信息。为了使它看起来更整洁,我希望删除消息框的“Microsoft Excel”标题。我所做的是在消息后放了两个逗号,这是我通常做的,但是只有一行文本,但我不断收到带有等号或无效语法错误的表达式错误。有人可以帮忙吗?

这是我当前的代码:)

    Private Sub about_button_Click()
    MsgBox ("Name: gemUI" & vbCrLf & "Version: 1.0" & vbCrLf & "Build: 0001" & _
    vbCrLf & "(C) 2018 Josh Face", , "About gemUI")
    End Sub

如果有人可以提供帮助,将不胜感激 :) 祝你晚上愉快:)

乔什

【问题讨论】:

  • 去掉外括号。

标签: vba msgbox


【解决方案1】:

你的括号太多了。 Ether 去掉围绕参数的外括号或使用 Call 关键字。

Private Sub about_button_Click()
    MsgBox "Name: gemUI" & vbCrLf & "Version: 1.0" & vbCrLf & "Build: 0001" & _
        vbCrLf & "(C) 2018 Josh Face", , "About gemUI"
End Sub

Private Sub about_button_Click()
    Call MsgBox( "Name: gemUI" & vbCrLf & "Version: 1.0" & vbCrLf & "Build: 0001" & _
        vbCrLf & "(C) 2018 Josh Face", , "About gemUI")
End Sub

VBA 中,您可以使用任一方法调用子例程

MySub arg1, arg2, arg3

Call MySub(arg1, arg2, arg3)

当你写作时

MySub (arg1, arg2, arg3)

它试图将多个参数组合成一件事,但失败了。

【讨论】:

  • @JoshF 只是为了澄清最后一点:DoSomething (something) 采用something,将其作为值表达式进行评估,并将ByVal 传递给DoSomething,即使DoSomething 的签名也是如此声明它正在接受ByRef。多余的括号不仅是编译时问题,它们还可以很容易地改变代码的运行方式,并引入非常难以诊断的错误。
【解决方案2】:

只是添加一个(也许)不那么笨拙的方式:

MsgBox Join(Array("Name: gemUI", "Version: 1.0", "Build: 0001", "(C) 2018 Josh Face"), vbCrLf), , "About gemUI"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多