如标题所述,我有一个带有宏的Excel文件,在加载时运行。我希望能够使用户在宏运行时无法使用计算机。
这是一个用于数据输入的简单表格。然而,大多数用户只是忽略它,让它在后台运行,同时他们做其他事情。
是否可能在显示用户窗体时,让他们无法在计算机上进行其他操作,强制他们输入数据?
我已经尝试过一切方法,从警报到使他们无法关闭表单,如果他们不输入数据,但迄今为止,什么都没有起作用。
如标题所述,我有一个带有宏的Excel文件,在加载时运行。我希望能够使用户在宏运行时无法使用计算机。
这是一个用于数据输入的简单表格。然而,大多数用户只是忽略它,让它在后台运行,同时他们做其他事情。
是否可能在显示用户窗体时,让他们无法在计算机上进行其他操作,强制他们输入数据?
我已经尝试过一切方法,从警报到使他们无法关闭表单,如果他们不输入数据,但迄今为止,什么都没有起作用。
您不能这样做。您的表单位于EXCEL.EXE进程空间中,没有办法告诉Windows EXCEL.EXE只是在执行它的任务,直到EXCEL.EXE自己说出来。
这不是VBA的限制 - 您不能拥有一个进程,它会劫持机器上每个其他进程中的所有消息循环,那是灾难的配方。我不希望操作系统以任何方式允许您这样做。
与上述相同,最好的做法是不要激怒您的用户。但是,如果它是在仅具有一个功能的机器上运行的应用程序,例如访客日志,那么您可以将表单设置为最顶层的表单。
例如,请参见 https://www.mrexcel.com/forum/excel-questions/386643-userform-always-top.html 以获取示例,以及 https://www.jkp-ads.com/articles/apideclarations.asp 以获取窗口API函数的声明。
另一种方法是设置定时器并通过声音提醒用户...