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

时间:2018-11-26 18:35:30

标签: excel vba printing protected

我有一个工作表,它是从用户表单信息以及同一文件中的其他一些电子表格中填充的。我使用了以下代码:

Application.Dialogs(xlDialogPrint).Show

我确保在打印之前已激活纸张,并且该功能正常工作。

此工作表和工作簿中的其他文件必须受到保护,以防止用户在用户表格之外进行更改。当我保护工作表并添加适当的代码以解锁该工作表时,会发生一些事情: 1.用户表格按设计填写。 2.打印对话框显示为设计状态。 3.按下对话框上的“打印”按钮时,将不会打印。不是打印机问题:它也不会打印为PDF。

我如何才能根据需要实际打印工作表?

2 个答案:

答案 0 :(得分:0)

您可以使用

取消保护工作表
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

答案 1 :(得分:0)

下面的普通代码必须完成工作,而无需取消保护和保护

ActiveWindow.SelectedSheets.PrintOut Copies:=1, Preview:=True, Collate:=True