excel 工作簿.close无法运行宏“https://wfp-mysharepoint.com”......

insrf1ej  于 2022-11-18  发布在  其他
关注(0)|答案(1)|浏览(212)

背景信息:
此工作簿位于共享点上,我正在尝试在桌面应用程序中运行Marco。
宏的目标是在10分钟后自动关闭工作簿。我希望确保用户不会在不使用工作簿的情况下保持打开状态。
但是,当我运行下面的代码时,我收到一条错误消息
“无法运行宏“https://wfp-mysharepoint.com ............”。此宏可能在此工作簿中不可用,或者宏可能被禁用。
代码如下:

Private Sub Workbook_Open()
    Picktime
End Sub

Sub Picktime()
    savetime = Hour(Now) & ":" & Minute(Now) + 1 & ":" & Second(Now)
    Application.OnTime savetime, "Please_close"
End Sub

Sub Please_close()
    ThisWorkbook.Close (True)
End Sub
jq6vz3qz

jq6vz3qz1#

过程Workbook_Open是打开工作簿时自动运行的事件,因此必须位于工作簿ThisWorkbook的作用域中。其他与工作表相关的事件位于其工作表的作用域中。
所有其他的代码都应该放在一个普通的模块中。特别是那些需要被Application.OnTime找到的代码只能放在一个普通的模块中。
因此在ThisWorkbook中:

Private Sub Workbook_Open()
    Picktime
End Sub

在正常模块中:

Public Sub Picktime()
    Dim SaveTime As Variant
    SaveTime = Now() + TimeValue("00:01:00")
    Application.OnTime EarliestTime:=SaveTime, Procedure:="Please_close"
End Sub

Public Sub Please_close()
    ThisWorkbook.Close SaveChanges:=True
End Sub

请注意,使用Now() + TimeValue("00:01:00")Now()增加一分钟更容易

相关问题