Excel 如何仅在工作日运行工作簿_Open代码?(M-F)

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 "^+{

我有一系列Application.OnTime代码,需要在一周中的特定日期运行(M-F)。我不需要这些代码在周六/周日运行。如何编写代码以仅运行M-F?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函数括起来是什么意思。我更新了问题中的代码Remove
call 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