为什么excel没有隐藏我的形状?

我在下面使用这个代码…

Declare Sub Sleep Lib "kernel32" (ByVal Milliseconds As Long) Sub blink() Sleep 500 ActiveSheet.Shapes("the_shape").Visible = False Sleep 500 ActiveSheet.Shapes("the_shape").Visible = True End Sub 

我错过了什么?

这很奇怪。 添加DoEvents解决了这个问题。 我猜测在Excel有机会隐藏形状之前, Sleep暂停线程。

 Declare Sub Sleep Lib "kernel32" (ByVal Milliseconds As Long) Sub blink() Sleep 500 ActiveSheet.Shapes("the_shape").Visible = False DoEvents Sleep 500 ActiveSheet.Shapes("the_shape").Visible = True End Sub