簡體   English   中英

根據保存位置/文件名更改工作簿的保護

[英]Change the protection of a workbook based on save location / filename

我有一本標記為final的工作簿,但我希望用戶能夠復制一份不是final的工作簿。 但是我不知道如何做到這一點。

我當時想將以下代碼放入工作簿的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:\test\final\test_wb_save.xlsm" 'adapt with fullname of final workbook

        If wb.FullName = final_wb Then
            IsAWorkbookFinal = True
        Else
            IsAWorkbookFinal = False
        End If

End Function

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM