允许用户打印受保护的工作表

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

【讨论】:

以上是关于允许用户打印受保护的工作表的主要内容,如果未能解决你的问题,请参考以下文章

受保护工作表上的表单控件

Oracle SQL Developer的SQL工作表不能正常编辑

当工作表不受保护时清除数据

保护工作表仅在特定范围内插入行

如何在 Excel 2013 中对受保护的工作表启用排序

公共密码无法在受保护的工作表中识别