是否可以静默更新形状?

时间:2016-01-28 18:07:14

标签: excel excel-vba excel-2013 vba

我在Excel中创建了一个小型发票系统,它利用了VBA中的宏。系统的导航包括一个数字时钟,以HH:MM:SS格式显示时间:

enter image description here

时钟只是一个带文本的绘制矩形,只是一个U.I元素,除了视觉外观之外不用于任何其他内容。它通过递归VBA函数每秒更新一次:

Sub updateTime()
    If (Not ActiveSheet.Name = "srcFacilities" And Not ActiveSheet.Name = "srcAnimals" And Not ActiveSheet.Name = "attrs") Then
        ActiveSheet.Shapes.Range(Array("timeRec")).TextFrame2.TextRange.Characters.Text = Format(Time, "hh:mm:ss")
    End If
    Application.OnTime Now + TimeValue("00:00:01"), "updateTime"
End Sub

系统在没有Windows任务栏的情况下全屏运行,因此时钟是时间的有用指标。

在测试中,用户抱怨的一个问题是时钟的更新导致Excel暂时冻结大约1/4秒&显示'wait'光标。这导致用户变得沮丧(可以理解)。系统本身是可用的,但这个问题很烦人,所以我想解决它。

是否可以更新形状内的文字,而 Excel会在每次更新时暂时冻结?

我尝试将形状更改为文本框并使用ActiveSheet.TextBoxes("timeRecTest").Text = Format(Time, "hh:mm:ss")进行更新,但结果相同。

0 个答案:

没有答案