首页 > 解决方案 > 选择不同单元格时关闭 MsgBox

问题描述

MsgBox移动到新单元格时有没有办法关闭 a 。我知道你可以用计时器来做,但这对我不起作用。我有以下代码:

If Target.Address = "$E$83" Then
    MsgBox Worksheets("Budget Hours").Range("L3").Value & vbNewLine _
        & vbNewLine & Worksheets("Budget Hours").Range("E24").Value & " - " & Worksheets("Budget Hours").Range("L24").Value & " Hours" _
        & vbNewLine & Worksheets("Budget Hours").Range("E25").Value & " - " & Worksheets("Budget Hours").Range("L25").Value & " Hours" _
        & vbNewLine & Worksheets("Budget Hours").Range("E26").Value & " - " & Worksheets("Budget Hours").Range("L26").Value & " Hours" _
        & vbNewLine & Worksheets("Budget Hours").Range("E27").Value & " - " & Worksheets("Budget Hours").Range("L27").Value & " Hours" _
        & vbNewLine & Worksheets("Budget Hours").Range("E28").Value & " - " & Worksheets("Budget Hours").Range("L28").Value & " Hours" _
            , , Worksheets("Budget Hours").Range("E23").Value
    ElseIf Target.Address = "$E$84" Then
    MsgBox Worksheets("Budget Hours").Range("M3").Value & vbNewLine _
        & vbNewLine & Worksheets("Budget Hours").Range("E24").Value & " - " & Worksheets("Budget Hours").Range("M24").Value & " Hours" _
        & vbNewLine & Worksheets("Budget Hours").Range("E25").Value & " - " & Worksheets("Budget Hours").Range("M25").Value & " Hours" _
        & vbNewLine & Worksheets("Budget Hours").Range("E26").Value & " - " & Worksheets("Budget Hours").Range("M26").Value & " Hours" _
        & vbNewLine & Worksheets("Budget Hours").Range("E27").Value & " - " & Worksheets("Budget Hours").Range("M27").Value & " Hours" _
        & vbNewLine & Worksheets("Budget Hours").Range("E28").Value & " - " & Worksheets("Budget Hours").Range("M28").Value & " Hours" _
            , , Worksheets("Budget Hours").Range("E23").Value
    ElseIf Target.Address = "$E$84" Then
End If

所以我希望能够选择E83MsgBox启动,然后单击E84并启动新MsgBox的,而不必关闭第一个MsgBox.

标签: excelvba

解决方案


你不能这样做MsgBox- 用户必须点击它。

相反,制作一个看起来像消息框的用户窗体,然后使用它来代替......

frmMsgBox.txtMessage = Worksheets("Budget Hours").Range("M3").Value
frmMsgBox.Show vbModeless

这假定 UserForm 的名称是,frmMsgBox并且表单上的一个 TextBox 称为txtMessage.

以您想要的任何方式构建您的文本(最好先将其设置为变量),然后将文本设置为等于该值。


推荐阅读