繁体   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