就像标题中所说的那样,我有一个Excel文件,其中的宏正在加载中运行,我想制作它,以便用户在宏运行时无法使用计算机。
这是一种简单的数据输入形式。但是,大多数时候,用户只是忽略它,而让它们在执行其他操作时在后台运行。
是否可以做到这一点,以便在显示用户窗体时,他们无法在计算机上执行任何其他操作来迫使他们输入数据?
我已经尝试了警报中的所有内容,以使它们在不输入数据的情况下无法关闭表单,但到目前为止,没有任何效果。
答案 0 :(得分:7)
您不能那样做。您的表单位于EXCEL.EXE进程空间中,在EXCEL.EXE如此声明之前,没有办法告诉Windows EXCEL.EXE就是它要做的一切。
这不是VBA的限制-您不能拥有一个劫持计算机上所有其他进程中所有消息循环的进程,这是灾难的根源。我不希望操作系统允许您以任何方式,形状或形式进行操作。
答案 1 :(得分:1)
与上述内容保持一致,其最佳做法是不激怒用户。但是,如果它是具有唯一功能的计算机上的应用程序(即访问者日志),则可以将表单设为最顶层表单。
有关示例,请参见示例https://www.mrexcel.com/forum/excel-questions/386643-userform-always-top.html,有关Windows API函数的声明,请参见https://www.jkp-ads.com/articles/apideclarations.asp
另一种方法是设置计时器并用声音提醒您的用户...