MsgBox是一个模式对话框,因此在显示当前执行时停止当前执行
然而,也有一些解决方案,例如对话框超时,就像用户在时间过去后按下按钮一样(不确定是否在AutoCAD vba中可用),但是,也有可以创建和使用的无模式表单
将一个新表单添加到项目中,并使其与msgbox对话框的大小相同
将所需的标签和按钮放置在表单上,根据需要进行设计。您可以添加图像以在msgbox上实现相同的外观
在代码中,设置标签值、标题等,以说出您想要的内容,然后创建一个新表单,即
- 'Create the form
- set NewForm = New MyMsgBoxForm '(if MyMsgBoxForm is what you named your form)
- With Newform
- .Caption = "Message"
- .label1.Text ="Excel Files W/Prefix are in place. On to the Data Extraction Files..."
- .show(vbModeless)
- End With
每当您想在代码执行期间隐藏表单时,只需调用NewForm。隐藏如果您在一个函数中创建表单,并且变量超出范围,则您将赢得';无法使用变量名将其关闭,因此您可能需要创建一个保存消息表单的属性。例如:
- Private _Myform as Userform
- _Myform = New MyMsgBoxForm
- Property Get MessageBox() As MyMsgBoxForm
- set MessageBox = _Myform
- End Property
现在你可以调用MessageBox来完成这项工作
- With MessageBox
- 'do stuff here
- End With
当然,我已经好几年没有使用vba了,所以我可以#039;我不能保证VBA库中没有变化,也不能保证语法正确……但这个想法应该适合你。 |