Excel中除了MsgBox之外的消息提醒?

时间:2015-04-09 07:49:26

标签: excel vba excel-vba alert msgbox

是否有其他方法可以在除MsgBox以外的Excel中显示消息?

我在考虑安全警报/启用宏警报样式。我可以使用相同的空格来显示一些文字吗?

我试图在没有他们需要点击按钮的情况下通知用户。

干杯

4 个答案:

答案 0 :(得分:5)

如果您希望在用户无需交互的情况下显示消息,您可以创建用户表单并将其显示为无模式,这意味着在显示表单后,VBA的正常执行将继续。

example(form =“UserMsgBox”,label =“Label1”)

Sub Test()
    UserMsgBox.Show vbModeless

    UserMsgBox.Label1.Caption = "This is my 1st message to you"
    UserMsgBox.Repaint
    Application.Wait Now + TimeValue("00:00:02")

    UserMsgBox.Label1.Caption = "This is my 2nd message to you"
    UserMsgBox.Repaint
    Application.Wait Now + TimeValue("00:00:02")

    UserMsgBox.Label1.Caption = "This is my 3rd and last message to you"
    UserMsgBox.Repaint
    Application.Wait Now + TimeValue("00:00:02")

    UserMsgBox.Hide

End Sub

其次,您可以使用

在Excel应用程序窗口底部的状态栏区域中显示文本
Application.StatusBar = "My bottom line message to you"

答案 1 :(得分:1)

我宁愿选择OnTime来安排任务而不是使用Wait。等待可能会阻止所有其他Excel活动。因此,用户必须等待,直到表单消失。使用OnTime,用户仍然可以选择在此期间执行某些操作。所以,这是我的主张(也使用Form方法):

Public Sub showform()

Load UserForm1
UserForm1.StartUpPosition = 0
UserForm1.Left = Application.Left + Application.Width * 0.9 - UserForm1.Width
UserForm1.Top = Application.Top + Application.Height * 0.9 - UserForm1.Height
UserForm1.Show (False)
Application.OnTime Now + TimeValue("0:00:05"), "closeform"

End Sub

Public Sub closeform()

UserForm1.Hide
Unload UserForm1

End Sub

答案 2 :(得分:0)

在回答问题时,请参阅以下链接,了解所有类型的msgbox

列表

下面也使用语法 - 希望这会有所帮助!

MsgBox("Some Text", vbCritical, "Message title")

https://msdn.microsoft.com/en-us/library/139z2azd%28v=vs.90%29.aspx

干杯

答案 3 :(得分:0)

您可以使用此类型的消息框而不是默认的VBA MsgBox。它支持Unicode

Application.Assistant.DoAlert "Hoc Excel Online Title", "your message", 0, 4, 0, 0, 0