【问题标题】:Allow users to print protected worksheet允许用户打印受保护的工作表
【发布时间】:2019-04-28 10:51:14
【问题描述】:

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

Application.Dialogs(xlDialogPrint).Show

我确保在打印之前激活了工作表,并且我已经让功能正常工作。

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

我怎样才能让它像我需要的那样实际打印工作表?

【问题讨论】:

    标签: excel vba printing protected


    【解决方案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
      

      【讨论】:

        猜你喜欢
        • 2015-11-30
        • 2015-11-03
        • 1970-01-01
        • 1970-01-01
        • 2013-12-15
        • 2015-05-16
        • 1970-01-01
        • 2019-03-23
        • 2017-10-26
        相关资源
        最近更新 更多