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

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

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

当我使用简单的密码,代码的作品,但如果我设置pass:pass111111 – 有一个错误的密码错误

这很容易:

 sub Protect_Sheet() Thisworkbook.Sheets(1).Unprotect Password:="Password" 'Do something Thisworkbook.Sheets(1).Protect Password:="Password" End Sub 

我会build议这个代码来保护你的工作表

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

注意userInterfaceOnly:=True的使用userInterfaceOnly:=True

如上所示,如果将UserInterfaceOnly参数设置为True ,使用Protect方法,则保护用户界面而不保护macros。 所以你不需要UnProtect工作表从macros中添加数据。 您可以直接使用它执行操作。 例如

 Sub ProtectSheet() Sheets("Sheet1").Protect Password:="111111", _ Contents:=True, userInterfaceOnly:=True Sheets("Sheet1").Range("A1").Value = "Hello World!" End Sub 

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

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

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