根据保存位置/文件名更改工作簿的保护



我有一个工作簿,我已将其标记为最终状态,但我希望用户能够复制该工作簿,该工作簿不是最终的。但是我不知道该怎么做。

我正在考虑将以下代码放在工作簿的ThisWorkbook-模块中,但我犹豫不决,因为如果不再次保存工作簿,所做的更改将不会坚持,如果我在那里输入ThisWorkbook.Save工作簿将保存两次(至少,我认为我必须在再次保存之前禁用事件?

Option Explicit
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
If ThisWorkbook.FullName = "<full name of the original>" Then
ThisWorkbook.Final = True
Else
ThisWorkbook.Final = False
End If
End Sub

你们对更优雅的解决方案有什么建议吗?

在模块中添加此函数以确定工作簿是否是最终工作簿:

Option Explicit
Public Function IsAWorkbookFinal() As Boolean
Dim wb As ThisWorkbook
Set wb = ThisWorkbook
Dim final_wb As String
final_wb = "C:testfinaltest_wb_save.xlsm" 'adapt with fullname of final workbook
If wb.FullName = final_wb Then
IsAWorkbookFinal = True
Else
IsAWorkbookFinal = False
End If
End Function

相关内容

  • 没有找到相关文章

最新更新