允许用户打印受保护的工作表
Posted
技术标签:
【中文标题】允许用户打印受保护的工作表【英文标题】:Allow users to print protected worksheet 【发布时间】:2019-04-28 10:51:14 【问题描述】:我有一个从用户表单信息和同一文件中的其他几个电子表格填充的工作表。我使用了以下代码:
Application.Dialogs(xlDialogPrint).Show
我确保在打印之前激活了工作表,并且我已经让功能正常工作。
必须保护此工作表和工作簿中的其他工作表,以防止用户在用户窗体之外进行更改。当我保护工作表并添加适当的代码来解锁该工作表时,会发生一些事情: 1. 用户表单按设计填写。 2. 打印对话框按设计显示。 3. 对话框中按下打印按钮时,不打印。不是打印机问题:它也不会打印为 PDF。
我怎样才能让它像我需要的那样实际打印工作表?
【问题讨论】:
【参考方案1】:您可以使用
取消对工作表的保护ActiveSheet.Unprotect
https://docs.microsoft.com/en-us/office/vba/api/excel.worksheet.unprotect
然后在使用它之后保护它
ActiveSheet.Protect
https://docs.microsoft.com/en-us/office/vba/api/excel.worksheet.protect
【讨论】:
【参考方案2】:下面的普通代码必须完成工作而无需取消保护和保护
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Preview:=True, Collate:=True
【讨论】:
以上是关于允许用户打印受保护的工作表的主要内容,如果未能解决你的问题,请参考以下文章