所以我有一个工作簿,我希望在某个日期之后变为只读/保护。我还想强制用户启用宏。到目前为止,我有以下脚本,但尽管将其更改为只读,它似乎没有做任何事情。我还试图在该日期之后在工作表上启用保护,但是我遇到了错误。任何人都可以帮助我吗?
-Eric
Private Const ExpirationDate As Date = #4/5/2099#
Private Sub Workbook_Open()
' Timebomb
If CDate(Now) >= CDate(ExpirationDate) Then
ThisWorkbook.ChangeFileAccess (xlReadOnly)
ThisWorkbook.Worksheets("Sheet").Protect Password:="NoAccess", UserInterfaceOnly:=True
ThisWorkbook.Protect Password:="NoAccess", UserInterfaceOnly := True
End If
' Force Enable Macros
ThisWorkbook.Worksheets("Sheet").Visible = xlSheetVisible
Sheets("START").Visible = xlVeryHidden
ThisWorkbook.Worksheets("Sheet").Activate
End Sub
' Force Enable Macros
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Sheets("START").Visible = xlSheetVisible
ThisWorkbook.Worksheets("Sheet").Visible = xlVeryHidden
ActiveWorkbook.Save
End Sub
答案 0 :(得分:0)
您无法强制运行宏,因为......然后根本没有任何关于宏的安全性。您可以做的是让您的用户将您的文件夹添加为可信网络位置
Options > Trust Center > Trust Center Settings...>Trusted Locations
Allow Trusted Locations on my network
add New location...
或者,您可以运行一个脚本" archives"旧文件(将它们放在其他文件夹中)并制作它们的PDF代替原始文件。 PDF将是“只读”的#39;版本