我正在尝试使用密码代码保存工作簿(.xlsx),因此当用户尝试打开它时,会提示输入密码。否则,将显示文件受保护的警报。
用户将能够看到所有数据,但不能更新/插入/删除。
Sub Macro2()
Sheets("Sheet1").Select
Sheets("Sheet1").Copy
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
ChDir "C:\Users\shane\Desktop"
ActiveWorkbook.SaveAs Filename:="C:\Users\shane\Desktop\password.xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
ActiveWindow.Close
End Sub发布于 2015-02-28 10:21:56
查看Workbook.SaveAs方法的VBA文档([https://msdn.microsoft.com/en-us/library/office/ff841185.aspx])。
该方法的第三个可选参数是Password。
发布于 2015-08-26 03:29:10
虽然你刚才问了,但我在这个话题上做了一些研究。我可以确认使用ActiveSheet.Protect "yourPassword"将保护您的单元格(除非设置了属性),但是它不会提示用户输入密码的输入框。
我环顾四周,发现了一些与同一主题相关/相似的问题。例如:和显示在那里的答案,弹出密码框。
我尝试了一下,发现使用AllowFiltering会触发密码框。我仍然在到处寻找这种行为的原因。
如果任何人可以找到一个链接/张贴一个提示-任何关于这个主题的信息都是非常欢迎的!
最后,根据提出的问题/评论,这段代码适用于我。
Sub ProtectCells()
Sheets("Sheet1").Select
Sheets("Sheet1").Copy
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
ChDir "C:\Users\shane\Desktop"
' WORKS
ActiveSheet.Protect Password:="111", AllowFiltering:=True
' will NOT WORK!! (won't prompt a password box)
'ActiveSheet.Protect Password:="111", AllowSorting:=True
ActiveWorkbook.SaveAs Filename:="C:\Users\shane\Desktop\password.xlsx", FileFormat:=xlOpenXMLWorkbook, Password:="222", CreateBackup:=False
ActiveWindow.Close
End Subhttps://stackoverflow.com/questions/28776163
复制相似问题