【问题标题】:Excel vba - Refresh automatically a label on an excel sheetExcel vba - 自动刷新 Excel 工作表上的标签
【发布时间】:2021-07-09 11:17:47
【问题描述】:

我正在尝试通过 vba 脚本自动更新直接位于 Excel 工作表(不包含表单)中的标签。

我的 Excel 工作表包含大量文本和要完成的工作的步骤。每个步骤都有自己的按钮和标签。这就是为什么我决定在每个调用自己的函数的按钮之后放置一个标签。

点击按钮后,函数被执行,并且在脚本执行过程中标签发生了多次变化。尽管如此,我的标签在执行期间没有更新。它仅在最后(执行完成时)使用定义的最后一个值进行更新。

我试过这行:

DoEvents

或者

Application.ScreenUpdating = True

但它不起作用。

这是我的脚本:

Private Sub ButtonExcelToWord_Click()

Me.Label.Caption = "Exécution du script..."

Application.ScreenUpdating = True
DoEvents

Me.Label.Caption = "Mise à jour..."

Application.ScreenUpdating = True
DoEvents

.......
End Sub

你能告诉我怎么做吗?如果不做表格就可以做到吗?

谢谢

【问题讨论】:

  • 活动工作表中是否有一个名为“标签”的标签?如果是,'ButtonExcelToWord' 是否是 ActiveX 控件,其代码位于存在 'Label' 标签的工作表模块中?
  • @FaneDuru 标签位于按钮的活动表中。该按钮是一个 ActiveX 控件
  • 如果是这样(标签名为“标签”),在您的代码尝试完成后,您是否能够手动更改相关标签(名为“标签”)标题?我无法重现您的问题。您使用什么 Excel 版本?

标签: excel vba label refresh


【解决方案1】:

DoEvents 两次应该可以解决问题:

Sub TestMe()
    
    Application.ScreenUpdating = True
    Dim i As Long
    For i = 1 To 5
        Me.Label1.Caption = i
        DoEvents
        DoEvents
        Application.Wait Now + #12:00:01 AM#
    Next i
    
End Sub

【讨论】:

    【解决方案2】:

    您应该使用 StatusBar :) 这里是示例。

    【讨论】:

    • 坦克为您提供帮助。但我不能使用状态栏(安全策略规则)。我的 Excel 工作表包含大量文本和要完成的工作的步骤。每个步骤都有自己的标签。这就是为什么我决定在每个调用自己的函数的按钮之后放置一个标签
    猜你喜欢
    • 1970-01-01
    • 2010-09-14
    • 2021-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多