是否有可能默默更新形状?

我在Excel中创build了一个使用VBAmacros的小型开票系统。 系统导航包括一个数字时钟,以HH:MM:SS格式显示时间:

在这里输入图像说明

时钟只是一个带有文本的绘制矩形,并且只是一个UI元素,除了视觉外观之外,其他都不用。 它通过recursionVBA函数每秒更新一次:

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任务栏的情况下全屏运行,因此时钟是时间的有用指示器。

在testing中,用户抱怨的一个问题是,时钟的更新导致Excel瞬间冻结大约1/4秒,并显示“等待”光标。 这会导致用户感到沮丧(可以理解)。 系统本身是可用的,但这个问题很烦人,所以我想解决它。

是否有可能更新形状内的文本没有 Excel临时冻结每个更新?

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