允许函数/循环在msgbox打开VBA时运行

允许函数/循环在msgbox打开VBA时运行,vba,msgbox,Vba,Msgbox,我正在完成一个程序,想为“关于”选项卡做些有趣的事情。我是复活节彩蛋之类的超级粉丝,我想做些很酷的事情。我的想法是,当按下按钮时,运行一个函数对单元格进行颜色平铺,同时msgbox弹出窗口说“嘿,谢谢你使用我的程序”或类似的内容,然后单击msgbox ok后,该函数立即结束。有什么简单的方法可以做到这一点吗?这并不是非常重要,但对未来的应用也非常有用 以下是我想要的: do while msgbox <> ok 'something amazing I guess next 我找不

我正在完成一个程序,想为“关于”选项卡做些有趣的事情。我是复活节彩蛋之类的超级粉丝,我想做些很酷的事情。我的想法是,当按下按钮时,运行一个函数对单元格进行颜色平铺,同时msgbox弹出窗口说“嘿,谢谢你使用我的程序”或类似的内容,然后单击msgbox ok后,该函数立即结束。有什么简单的方法可以做到这一点吗?这并不是非常重要,但对未来的应用也非常有用

以下是我想要的:

do while msgbox <> ok
'something amazing I guess
next

我找不到任何类似的东西;尽管如此,我可能问的问题不对。提前谢谢

在我看来,您可以创建一个在单击事件中打开的非模态表单,例如:

Do While msgbox("Hey thanks for using my Kick-ass," & Vbcrlf & _
" better then you ever thought possible program",vbokonly,"Title of Program here") <> vbok

'tell you form do colour tiles and any form of magic you want here

next

Vbok,是Msgbox返回的内容。

使用自定义用户表单,并使用非模态选项显示它。@TimWilliams,如果我理解这些,它将不起作用。我需要函数无限,直到按下ok。我的理解是,非模态用户表单在时间/任务结束时终止,而不是表单本身被关闭。非模态用户在您关闭它们之前一直保持打开状态。您可以在进入循环之前启动表单,然后在表单上有一个按钮,通过在表单上设置全局标志或从循环中检查的属性来终止循环-当循环检测到OK时,它退出。您可能必须使用DoEvents来允许表单响应OK按钮,这取决于您计划使用的循环类型。