将数据添加到受密码保护的工作表

时间:2012-09-27 10:04:58

标签: excel vba excel-vba excel-2003

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

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

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

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

3 个答案:

答案 0 :(得分:3)

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

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

请注意使用userInterfaceOnly:=True

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

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

    Sheets("Sheet1").Range("A1").Value = "Hello World!"
End Sub

答案 1 :(得分:2)

很简单:

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

'Do something 

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

End Sub

答案 2 :(得分:0)

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

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

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

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