首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从宏文件保存为.xlsx扩展名的文件,但保存后失去保护

从宏文件保存为.xlsx扩展名的文件,但保存后失去保护
EN

Stack Overflow用户
提问于 2015-02-28 07:37:08
回答 2查看 813关注 0票数 0

我正在尝试使用密码代码保存工作簿(.xlsx),因此当用户尝试打开它时,会提示输入密码。否则,将显示文件受保护的警报。

用户将能够看到所有数据,但不能更新/插入/删除。

代码语言:javascript
运行
复制
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
EN

回答 2

Stack Overflow用户

发布于 2015-02-28 10:21:56

查看Workbook.SaveAs方法的VBA文档([https://msdn.microsoft.com/en-us/library/office/ff841185.aspx])。

该方法的第三个可选参数是Password

票数 1
EN

Stack Overflow用户

发布于 2015-08-26 03:29:10

虽然你刚才问了,但我在这个话题上做了一些研究。我可以确认使用ActiveSheet.Protect "yourPassword"将保护您的单元格(除非设置了属性),但是它不会提示用户输入密码的输入框。

我环顾四周,发现了一些与同一主题相关/相似的问题。例如:和显示在那里的答案,弹出密码框。

我尝试了一下,发现使用AllowFiltering会触发密码框。我仍然在到处寻找这种行为的原因。

如果任何人可以找到一个链接/张贴一个提示-任何关于这个主题的信息都是非常欢迎的!

最后,根据提出的问题/评论,这段代码适用于我。

代码语言:javascript
运行
复制
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 Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28776163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档