我有一张带密码的表格。但我需要从vba代码中添加一些数据。我怎样才能做到这一点?也许我可以重置密码,然后添加数据然后重新设置
Me.Parent.Worksheets("Sheet1").Unprotect 111
Me.Parent.Worksheets("Sheet1").Protect Password:=111, DrawingObjects:=True, Contents:=True, Scenarios:=True
当我使用简单密码时,代码有效,但是如果我设置了pass:pass111111 - 错误密码错误
答案 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
这是我能想到解释这一点的唯一原因。