Excel 如何仅在工作日运行工作簿_Open代码?(M-F)
我有一系列Application.OnTime代码,需要在一周中的特定日期运行(M-F)。我不需要这些代码在周六/周日运行。如何编写代码以仅运行M-F?Application.OnKey代码需要每天运行。 多谢各位Excel 如何仅在工作日运行工作簿_Open代码?(M-F),excel,vba,weekday,Excel,Vba,Weekday,我有一系列Application.OnTime代码,需要在一周中的特定日期运行(M-F)。我不需要这些代码在周六/周日运行。如何编写代码以仅运行M-F?Application.OnKey代码需要每天运行。 多谢各位 'Set keyboard shortcuts Application.OnKey "^+{UP}", "Sheet4.SpinButton1_SpinDown" Application.OnKey "^+{
'Set keyboard shortcuts
Application.OnKey "^+{UP}", "Sheet4.SpinButton1_SpinDown"
Application.OnKey "^+{DOWN}", "Sheet4.SpinButton1_SpinUp"
If Weekday(Now()) > 2 And Weekday(Now()) < 7 Then Call Workbook_Open
Application.OnTime TimeValue("17:15:00"), "Saveit"
Application.OnTime TimeValue("17:17:00"), "MASTER"
Application.OnTime TimeValue("17:33:00"), "MASTER"
Application.OnTime TimeValue("17:59:00"), "MASTER"
Application.OnTime TimeValue("18:21:00"), "MASTER"
Application.OnTime TimeValue("18:45:00"), "MASTER"
Application.OnTime TimeValue("19:03:00"), "MASTER"
Application.OnTime TimeValue("19:23:00"), "MASTER"
Application.OnTime TimeValue("19:41:00"), "MASTER"
End Sub```
'设置键盘快捷键
Application.OnKey“^+{UP}”,“Sheet4.spinbuton1\u微调”
Application.OnKey“^+{DOWN}”,“Sheet4.spinbuton1\u微调”
如果工作日(Now())>2且工作日(Now())<7,则调用工作簿_Open
Application.OnTime时间值(“17:15:00”),“Saveit”
Application.OnTime时间值(“17:17:00”),“MASTER”
Application.OnTime时间值(“17:33:00”),“MASTER”
Application.OnTime时间值(“17:59:00”),“MASTER”
Application.OnTime时间值(“18:21:00”),“MASTER”
Application.OnTime时间值(“18:45:00”),“MASTER”
Application.OnTime时间值(“19:03:00”),“MASTER”
Application.OnTime时间值(“19:23:00”),“MASTER”
Application.OnTime时间值(“19:41:00”),“MASTER”
端接头```
如果您的代码在没有If
的情况下运行正常,那么我在评论中建议的应该可以运行
这就是你根据我的评论修改代码的方式吗
我使用了Date
而不是Now
,但它们应该给出相同的结果。在VBA中,现在不需要之后的()
我还使用了=2
,因为您指出了M-F,即:您希望包括星期一
。。。
'设置键盘快捷键
Application.OnKey“^+{UP}”,“Sheet4.spinbuton1\u微调”
Application.OnKey“^+{DOWN}”,“Sheet4.spinbuton1\u微调”
如果工作日(日期)>=2且工作日(日期)<7,则
Application.OnTime时间值(“17:15:00”),“Saveit”
Application.OnTime时间值(“17:17:00”),“MASTER”
Application.OnTime时间值(“17:33:00”),“MASTER”
Application.OnTime时间值(“17:59:00”),“MASTER”
Application.OnTime时间值(“18:21:00”),“MASTER”
Application.OnTime时间值(“18:45:00”),“MASTER”
Application.OnTime时间值(“19:03:00”),“MASTER”
Application.OnTime时间值(“19:23:00”),“MASTER”
Application.OnTime时间值(“19:41:00”),“MASTER”
如果结束
端接头
嗯,你试了什么?我以为你试着检查一周中的哪一天,结果出了问题。您使用了什么代码来检查,遇到了什么问题?Sub SecondSub()如果工作日(Now())>2和工作日(Now())<7,则调用工作簿_Open End Sub
我会将其放在工作簿_Open
Sub中,将.OnTime
函数括起来。我不明白您将.OnTime函数括起来是什么意思。我更新了问题中的代码Removecall workbook_open
,并将end if
放在您只想在工作日运行的行之后。既然这是在workbook_open上,我是否每天都要打开此文件,代码才能自行重置?感谢您,到目前为止,我已经对这段代码进行了测试,现在应该可以开始了。再次感谢你@Ron@ANDANDAND工作簿_Open仅在工作簿打开时激发。有关按计划运行此功能的各种方法,请参阅
...
'Set keyboard shortcuts
Application.OnKey "^+{UP}", "Sheet4.SpinButton1_SpinDown"
Application.OnKey "^+{DOWN}", "Sheet4.SpinButton1_SpinUp"
If Weekday(Date) >= 2 And Weekday(Date) < 7 Then
Application.OnTime TimeValue("17:15:00"), "Saveit"
Application.OnTime TimeValue("17:17:00"), "MASTER"
Application.OnTime TimeValue("17:33:00"), "MASTER"
Application.OnTime TimeValue("17:59:00"), "MASTER"
Application.OnTime TimeValue("18:21:00"), "MASTER"
Application.OnTime TimeValue("18:45:00"), "MASTER"
Application.OnTime TimeValue("19:03:00"), "MASTER"
Application.OnTime TimeValue("19:23:00"), "MASTER"
Application.OnTime TimeValue("19:41:00"), "MASTER"
End If
End Sub