如标题所示,我有一个带有宏的Excel文件正在加载,我希望使它能够使用户在宏运行时不能使用计算机。
这是一种简单的数据输入形式。然而,大多数情况下,用户只是忽略它,让它在后台运行,而他们在其他事情上工作。
是否有可能使用户表单在显示时不能在计算机上执行任何其他操作,从而迫使他们输入数据?
我已经尝试了从警报到使他们无法关闭表单,如果他们不输入数据,但到目前为止,没有任何工作。
发布于 2018-12-04 15:15:22
你不能这么做。您的表单位于EXCEL.EXE进程空间中,没有办法告诉EXCEL.EXE,在EXCEL.EXE这么说之前,EXCEL.EXE是它要做的所有事情。
这不是VBA限制--您不能让一个进程劫持机器上所有其他进程中的所有消息循环,这是一种灾难。我不希望操作系统允许您以任何方式、形状或形式完成这些操作。
发布于 2018-12-04 17:27:01
根据以上,它的最佳做法是不要激怒你的用户。但是,如果它是一个具有唯一功能的机器上的应用程序,即访问者日志,那么您可以将表单设置为最顶层的表单。
例如,参见https://www.mrexcel.com/forum/excel-questions/386643-userform-always-top.html作为示例,https://www.jkp-ads.com/articles/apideclarations.asp用于windows函数的声明。
另一种方法是设置一个计时器,用声音提醒用户.
https://stackoverflow.com/questions/53615780
复制相似问题