单击活动的 x 按钮制作副本后,如何使源工作表受到密码保护?

How do I get the source worksheet to become password protected after a copy is made by clicking an active x button?

下面的代码是通过激活的 x 按钮激活的。该代码将取消对活动工作簿和工作sheet的保护,复制活动工作sheet,将新sheet的选项卡放在我想要放置的位置,保护新的工作sheet,并保护工作簿。它无法保护制作副本的来源作品sheet。我也需要密码来保护 Last Active Sheet(复制的来源 Sheet)。非常感谢任何帮助。

Private Sub CommandButton13_Click()
ThisWorkbook.Unprotect Password:="Password1"
ActiveSheet.Unprotect Password:="Password2"
Dim i As Long, s As String, s2 As String
s = "NEW WONDERFUL WORKSHEET"
s2 = s
ActiveSheet.Copy After:=Sheets(2)
Do While WorksheetExists(s2)
    i = i + 1
    s2 = s & " " & i
Loop
ActiveSheet.Name = s2
ActiveSheet.Protect Password:="Password2"
ThisWorkbook.Protect Password:="Password1"
End Sub

我会重新组织一下代码。首先,让我们搜索可用的 sheet 名称 s2 删除保护之前。另外,我假设代码放在 worksheet 对象模块中,并且在我们单击按钮的那一刻,带有这个按钮的 sheet 是实际活动的 sheet,所以我们可以称它为 Me 而不是 ActiveSheet。至于密码,让我们把它们作为常量放在开头,以便在需要时更容易更改它们。

Private Sub CommandButton13_Click()
 
Const BookPass = "Password1"
Const SheetPass = "Password2"
Dim i As Long, s As String, s2 As String
 
    s = "NEW WONDERFUL WORKSHEET"
    s2 = s
    Do While WorksheetExists(s2)
        i = i + 1
        s2 = s & " " & i
    Loop
   
    ThisWorkbook.Unprotect BookPass
    With Me
        .Unprotect SheetPass
        .Copy After:=Sheets(2)
        With ActiveSheet
            .Name = s2
            .Protect SheetPass
        End With
        .Protect SheetPass
    End With
    ThisWorkbook.Protect BookPass
End Sub