2015-06-19 120 views
1

我有一個代碼根據打開的時間執行不同的操作。 我正在使用任務計劃程序來打開文件。代碼在第二個elseif運行沒有問題之前運行該部分。 但是,當從任務計劃程序打開文件時,第二個elseif將不會運行。任務計劃程序和工作簿打開宏

Sub workbook_open() 

Dim time_now As String 

time_now = Format(Now, "hh:mm:ss") 

If time_now > "00:05:00" And time_now < "00:05:30" And ThisWorkbook.MultiUserEditing Then 
    Application.DisplayAlerts = False 
    ThisWorkbook.ExclusiveAccess 
    Application.DisplayAlerts = True 
    Application.Calculation = xlCalculationAutomatic 
    ThisWorkbook.Save 
    Application.Quit 
ElseIf time_now > "00:05:00" And time_now < "00:05:30" And ThisWorkbook.MultiUserEditing = False Then 
Application.Quit 
ElseIf time_now > "00:10:00" And time_now < "00:11:00" Then 
    Application.DisplayAlerts = False 
    Call Sheet2.Update 
    If Not ActiveWorkbook.MultiUserEditing Then 
    ActiveWorkbook.SaveAs Filename:=ActiveWorkbook.FullName, accessmode:=xlShared 
End If 
    Application.DisplayAlerts = True 
    ThisWorkbook.Save 
    Application.Quit 
Else 

End If 

End Sub 

如果我用F8手動運行代碼,沒有問題。另外sheet2.update沒有問題。

不太確定爲什麼有人可以指點。 謝謝!

+0

使用'TimeSerial()'做一個時間比較' –

+0

好像你錯過了我的評論。我的意思是這樣的'如果現在> TimeSerial(5,0,0),現在

+0

oh ok謝謝!生病給了一個嘗試 – Francis

回答

1

我相信您的宏信任設置阻止任務調度程序打開該文件時的情況。

+0

但爲什麼第一個和第二個if/elseif語句的工作,如果這樣的話? – Francis