打开后我需要我的工作簿显示某种颜色。然后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时解决这个问题。
答案 0 :(得分:2)
我对此进行了测试并且有效。
在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
答案 1 :(得分:0)
要直接回答所提出的问题,如果您确实真的不得不使用OnTime
,这是一种解决方法......
可以在Workbook_Open
之后立即触发事件。您可以通过操纵Worksheet_Activate
子中的活动工作表来强制执行Workbook_Open
事件。然后,您可以使用Application.Wait
内的原始Worksheet_Activate
代码。
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