簡體   English   中英

使用密碼保護 VBA 項目

[英]Protect a VBA project with password

我的 VBA 加載項將一些工作表復制到新工作簿中。 盡管我的加載項是通過密碼進行的項目,但新工作簿在生成時不受密碼保護。 因此,用戶能夠閱讀其中的代碼。

我正在嘗試使用受保護的屬性來隱藏代碼,但沒有看到它起作用。

生成新工作簿的代碼:

Sub CreateNewWorkbook()

On Error GoTo LabelErro

Application.ScreenUpdating = False

Set NewWorkBook = Workbooks.Add

Dim currentSheet As Worksheet
Dim sheetIndex As Integer
sheetIndex = 1

With ThisWorkbook

    .IsAddin = False

    .Sheets("Ajuda").Copy Before:=NewWorkBook.Sheets(sheetIndex)

    .Sheets("Fronteira").Copy Before:=NewWorkBook.Sheets(sheetIndex)

    .Sheets("Correl").Copy Before:=NewWorkBook.Sheets(sheetIndex)

    .Sheets("Atributos").Visible = True
    .Sheets("Atributos").Copy Before:=NewWorkBook.Sheets(sheetIndex)
    .Sheets("Atributos").Visible = xlVeryHidden

    .Sheets("Pesos").Copy Before:=NewWorkBook.Sheets(sheetIndex)

    .Sheets("Calculos").Copy Before:=NewWorkBook.Sheets(sheetIndex)

    .Sheets("Hidden").Visible = True
    .Sheets("Hidden").Copy Before:=NewWorkBook.Sheets(sheetIndex)
    .Sheets("Hidden").Visible = xlVeryHidden

    .IsAddin = True

End With

With NewWorkBook

    .Sheets("Hidden").Visible = xlVeryHidden
    .Sheets("Calculos").Visible = xlVeryHidden
    .Sheets("Pesos").Range("C1").Formula = "=INDIRECT(""D"" & Hidden!B1+Hidden!B4+1)"
    .Sheets("Pesos").Range("C2").Formula = "=INDIRECT(""E"" & Hidden!B1+Hidden!B4+1)"
    .Protect Password:="teste", Structure:=True, Windows:=True

End With

Exit Sub

LabelErro:

        ThisWorkbook.IsAddin = True

End Sub

正如roryap所說,“Excel VBA設置工作簿密碼”的簡單谷歌返回了許多結果。 這是我看的第一個。

ActiveWorkbook.Protect Password:="test", Structure:=True, Windows:=True 

expression.Protect(Password, Structure, Windows) 表達式 必需。 返回 Workbook 對象的表達式。

密碼可選變體。 為工作表或工作簿指定區分大小寫的密碼的字符串。 如果省略此參數,您可以在不使用密碼的情況下取消保護工作表或工作簿。 否則,您必須指定密碼以取消保護工作表或工作簿。 如果忘記密碼,則無法取消對工作表或工作簿的保護。 最好將您的密碼及其相應文檔名稱的列表保存在安全的地方。

結構可選變體。 True 保護工作簿的結構(工作表的相對位置)。 默認值為 False。

Windows 可選變體。 True 以保護工作簿窗口。 如果省略此參數,則窗口不受保護。

暫無
暫無

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

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