2

我有一张带密码的表格。但我需要从 vba 代码中添加一些数据。我怎样才能做到这一点?也许我可以重置密码,然后添加数据,然后重新设置

 Me.Parent.Worksheets("Sheet1").Unprotect 111

Me.Parent.Worksheets("Sheet1").Protect Password:=111, DrawingObjects:=True, Contents:=True, Scenarios:=True

当我使用简单密码时,代码有效,但如果我设置 pass: pass111111 - 出现错误密码错误

4

3 回答 3

3

我建议使用此代码来保护您的工作表

Sub ProtectSheet()
    Sheets("Sheet1").Protect Password:="111111", _
    Contents:=True, userInterfaceOnly:=True
End Sub

注意使用userInterfaceOnly:=True

当您使用UserInterfaceOnly参数设置为True如上所示的 Protect 方法时,您将保护用户界面而不是宏。因此,您无需取消保护工作表即可从宏中添加数据。您可以直接使用它执行操作。例如

Sub ProtectSheet()
    Sheets("Sheet1").Protect Password:="111111", _
    Contents:=True, userInterfaceOnly:=True

    Sheets("Sheet1").Range("A1").Value = "Hello World!"
End Sub
于 2012-09-27T13:28:34.837 回答
2

这简单:

sub Protect_Sheet()
Thisworkbook.Sheets(1).Unprotect Password:="Password"

'Do something 

Thisworkbook.Sheets(1).Protect Password:="Password"

End Sub
于 2012-09-27T10:13:42.693 回答
0

如果您已将其设置为受保护,Password = 111则必须使用该密码取消保护,然后可以使用新密码重新保护:

        Me.Parent.Worksheets("Sheet1").Unprotect Password:="111"

        Me.Parent.Worksheets("Sheet1").Protect Password:="pass111111", DrawingObjects:=True, Contents:=True, Scenarios:=True

这是我能想到解释这一点的唯一原因。

于 2012-09-27T13:13:29.877 回答