【问题标题】:Excel VBA - Show values in loop during code runExcel VBA - 在代码运行期间循环显示值
【发布时间】:2020-07-24 10:08:51
【问题描述】:

我的 VBA 程序在进行时会在 for next 循环中穿梭于 200 个用户的列表中。有没有办法让消息出现在屏幕上以显示正在处理的用户?我知道这可以使用类似的东西来完成 - msgbox "User: " mUser - 但这需要单击 "ok" 才能继续执行代码。

我不是在寻找人们经常询问的进度条。

有什么想法吗?

谢谢

安德鲁

【问题讨论】:

  • 创建一个带有Label 字段的用户表单。每次选择新用户时更新该字段。完成后关闭表格。请提供您尝试过的更全面的回应
  • Application.StatusBar。您可以在每个循环中更新它。完成后将其设置为False

标签: excel vba loops progress


【解决方案1】:

我用来做 Zac 描述的一些代码是:

假设:

  • 用户表单称为 UserForm
  • 要显示名称的用户表单标签称为Label1
  • 屏幕更新已关闭
  • mUser 是您要显示的信息
  1. 在循环之前使表单可见

UserForm.Show vbModeless

  1. 在您的循环中(接近起点)
Application.ScreenUpdating = True
UserForm.Label1.Caption = mUser
DoEvents
Application.ScreenUpdating = False
  1. 循环之后
Application.ScreenUpdating = True
UserForm.Label1.Caption = "Finished - Close this box"

【讨论】:

  • 谢谢大家。我会试一试的。安德鲁
猜你喜欢
  • 1970-01-01
  • 2018-02-28
  • 1970-01-01
  • 1970-01-01
  • 2014-03-19
  • 2017-02-22
  • 1970-01-01
  • 1970-01-01
  • 2019-02-23
相关资源
最近更新 更多