gpt4 book ai didi

vba - 将 VBA 中的 ProgressBar UserForms 显示为模态还是非模态更好?

转载 作者:行者123 更新时间:2023-12-04 08:18:08 24 4
gpt4 key购买 nike

将 VBA 中的 ProgressBar UserForms 显示为模态还是非模态更好?在 VBA 中开发进度指标的最佳实践是什么?

无模式用户窗体需要使用 Application.Interactive = False ,而模态用户窗体本质上会阻止与应用程序的任何交互,直到核心过程完成或被取消。

如果 Application.Interactive = False但是,使用 Esc 键会中断代码执行,因此使用 Application.EnableCancelKey = xlErrorHandler UserForm 和调用过程都需要错误处理 (Err.Number = 18)。

资源密集型调用过程也可能导致 CommandButton_ClickUserForm_Activate无模式用户窗体中的事件失败。

一般来说,使用模式 UserForms 的进度指示器看起来更简单,因为正在执行的代码完全包含在 UserForm 模块中,并且不需要传递变量。

然而,使用模式 UserForms 作为进度指示器的问题是,每个需要进度指示器的过程都需要一个单独的 UserForm 模块,因为调用过程必须在 UserForm_Activate 过程中。

因此,虽然可以在无模式用户窗体中拥有一个可重用的进度指示器,但它的可靠性不如从多个模式用户窗体中执行代码。

哪种方式更好?

谢谢!

最佳答案

还有第三种方法,使用 Application.StatusBar .
您甚至可以使用一系列 U+25A0 和 U+25A1 字符来模拟真正的进度条。

关于vba - 将 VBA 中的 ProgressBar UserForms 显示为模态还是非模态更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2169975/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com