VBA中的异步通知
Posted
技术标签:
【中文标题】VBA中的异步通知【英文标题】:asynchronous notification in VBA 【发布时间】:2018-08-08 09:00:06 【问题描述】:我目前正在尝试编写一个需要在表单中设置通知栏的脚本。脚本本身负责创建发票,效果很好。但是,我想在标签中显示错误和信息。标签已经在一个框架中,我也有以下代码:
Private Function notificate(msg As String, Optional title As String)
lbl_notification.Caption = msg
If Not IsEmpty(title) Then
frm_notification.Caption = title
Else
frm_notification.Caption = ""
End If
frm_notification.Visible = True
Application.Wait (Now + TimeValue("0:00:10"))
frm_notification.Visible = False
frm_notification.Caption = ""
lbl_notification.Caption = ""
notificate = True
End Function
(我不确定它应该是子程序还是函数。)
如果可能的话,如何让这个功能发挥作用,以便我可以同时使用我的表单?
【问题讨论】:
您可能对***.com/questions/39224308/…感兴趣 只是为了让你知道:与名词notification对应的动词是to notify。 (你选择的词可能也能被理解,只是听起来有点好笑。) @inarion 哦 ^^ 谢谢你。是的,如果有一些错误,我很抱歉。我来自德国 无需感到抱歉。我们都会犯错。进步主要来自练习。所以继续这样做。 :) 关于您的实际问题:我强烈建议您查看上面发布的链接@Andre。尝试在本机 VBA 中实现它会涉及很多混乱的Application.Run
调用,我猜。
【参考方案1】:
嗯,我试了几次,终于搞定了。同时,我的子程序如下所示:
Private Sub notificate(msg As String, Optional title As String)
ofEvent = False
lbl_notification.Caption = msg
If Not IsEmpty(title) Then
frm_notification.Caption = title
Else
frm_notification.Caption = ""
End If
frm_notification.Visible = True
frm_notification.Transparency = 0.5
For i = 1 To 1000000
DoEvents
If ofEvent Then
GoTo GoOn
End If
Next i
GoOn:
frm_notification.Visible = False
frm_notification.Caption = ""
lbl_notification.Caption = ""
End Sub
正如你已经想象的那样,以下是我的点击功能框架
ofEvent = True
and ofEvent 是一个全局布尔变量
【讨论】:
以上是关于VBA中的异步通知的主要内容,如果未能解决你的问题,请参考以下文章