工作簿打开后立即使用Application.Wait

打开后,我需要我的工作簿才能显示某种颜色。 然后5秒后,我想要改变颜色。 所以我实现了以下代码:

Private Sub Workbook_Open() Application.ActiveSheet.Cells.Interior.ColorIndex = 4 Application.Wait (Now + TimeValue("0:00:05")) Application.ActiveSheet.Cells.Interior.ColorIndex = 5 End Sub 

但是,当我点击我的文件,加载5秒,然后打开并只显示第二种颜色。 我如何解决这个问题,同时仍然使用application.wait。

我testing了这个,它工作。

在Workbook_Open中使用它

 Private Sub Workbook_Open() 'Schedules a procedure to be run at a specified time in the future '(either at a specific time of day or after a specific amount of time has passed). Application.OnTime Now + TimeValue("00:00:01"), "DoThis" End Sub 

把它放在一个模块中。 不是这个工作或它不会工作

 Private Sub DoThis() Application.ActiveSheet.Cells.Interior.ColorIndex = 4 Application.Wait (Now + TimeValue("0:00:05")) Application.ActiveSheet.Cells.Interior.ColorIndex = 5 End Sub 

要直接回答提出的问题,这里是一个解决方法,而不使用OnTime如果你真的,真的必须…

Workbook_Open之后立即触发事件是可能的。 您可以通过操作Workbook_Open子中的活动Worksheet_Activate来强制执行一个Worksheet_Activate事件。 然后,您可以在Worksheet_Activate使用原始的Application.Wait代码。

 Private Sub Workbook_Open() Application.ActiveSheet.Cells.Interior.ColorIndex = 4 Sheets(2).Activate Sheets(1).Activate End Sub Private Sub Worksheet_Activate() Application.Wait (Now + TimeValue("0:00:05")) Application.ActiveSheet.Cells.Interior.ColorIndex = 5 End Sub