ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 12878|回复: 40

[转帖] 让Excel电子表格拒绝打印

[复制链接]

TA的精华主题

TA的得分主题

发表于 2010-8-3 04:31 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
现在的办公越来越倾向于无纸化办公了,Excel2007的应用也变得比较频繁了。但是在Excel2007的操作过程中我们可能会不小心碰到了打印按钮或者一些人不太注重节约,比较随意打印Excel2007文件,甚至是直接禁止一般人打印Excel2007文件。在不影响Excel2007文件的编辑保存等成长操作情况下我们该如何拒绝文件打印呢?
  其实这是比较简单的,只需要利用一段宏指令即可解决,具体操作如下:
  按下Alt+F11打开VBA编辑器,如果VBA Project窗格没有显示的话就按下组合键Ctrl+R将其调出;右键单击“This Workbook”,选择“查看代码”,然后再代码窗口内输入:
  Private Sub
  Workbook_BeforePrint(Cancel As Boolean)
  Cancel = True
  MsgBox “节约用纸 拒绝打印”, vbInformation
  End Sub
  然后我们按下组合键Alt+F11返回Excel2007。这样以后不管你是直接点击打印按钮,还是从“Office按钮”中选择“打印”,或者是使用快捷键Ctrl+P,都不能直接打印,只会显示你在宏指令中输入的提示语“节约用纸 拒绝打印”。这也让大家知道不能打印的原因是有意为之,而不是硬件或软件有什么问题。

TA的精华主题

TA的得分主题

发表于 2010-8-3 07:10 | 显示全部楼层
恩, 我认为最好也留一个打印的出口,可以设置权限,密码

TA的精华主题

TA的得分主题

发表于 2010-8-3 07:56 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
截屏 图片  打印呢  如何避免

TA的精华主题

TA的得分主题

发表于 2010-8-3 08:12 | 显示全部楼层
复制到另一个工作簿打印呢?治标的效果都达不到的。。。主要是灌输节俭的精神吧

TA的精华主题

TA的得分主题

发表于 2010-8-3 08:26 | 显示全部楼层

回复 2楼 dcb11111 的帖子

那就作点修改:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
    A = InputBox("请输入密码:")
    If A <> "123" Then
    Cancel = True
    MsgBox "节约用纸 拒绝打印", vbInformation
    End If
End Sub

TA的精华主题

TA的得分主题

发表于 2010-8-3 08:42 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
为什么我不能用

TA的精华主题

TA的得分主题

发表于 2010-8-3 08:54 | 显示全部楼层

回复 1楼 YZLSZAJ 的帖子

Private Sub Workbook_BeforePrint(Cancel As Boolean)
     Cancel = True
End Sub

TA的精华主题

TA的得分主题

发表于 2010-8-3 08:56 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2010-8-3 09:18 | 显示全部楼层
03 是一样能用的

感谢楼主。实际应用中可加一些判断条件针对一些表格填写项目不全则禁止打印

TA的精华主题

TA的得分主题

发表于 2010-8-8 08:40 | 显示全部楼层
可以啊!
但是VBA中没有“预览”事件,只能用其他事件触发,浏览命令有3处出现,
就禁用这3个命令,若要对某个工作表起作用就将以下代码放在该工作表代码窗中:
Private Sub Worksheet_Activate()
    Application.CommandBars(3).Controls("打印预览(&V)").Enabled = False
    Application.CommandBars(1).Controls("文件(&F)").Controls("打印预览(&V)").Enabled = False
    Application.CommandBars(1).Controls("文件(&F)").Controls("页面设置(&U)...").Enabled = False
End Sub

Private Sub Worksheet_Deactivate()
    Application.CommandBars(3).Controls("打印预览(&V)").Enabled = True
    Application.CommandBars(1).Controls("文件(&F)").Controls("打印预览(&V)").Enabled = True
    Application.CommandBars(1).Controls("文件(&F)").Controls("页面设置(&U)...").Enabled = True
End Sub

若想全工作簿都禁止,则将以下代码放在,ThisWorkbook代码窗中:
Private Sub Workbook_Activate()
    Application.CommandBars(3).Controls("打印预览(&V)").Enabled = False
    Application.CommandBars(1).Controls("文件(&F)").Controls("打印预览(&V)").Enabled = False
    Application.CommandBars(1).Controls("文件(&F)").Controls("页面设置(&U)...").Enabled = False
End Sub

Private Sub Workbook_Deactivate()
    Application.CommandBars(3).Controls("打印预览(&V)").Enabled = True
    Application.CommandBars(1).Controls("文件(&F)").Controls("打印预览(&V)").Enabled = True
    Application.CommandBars(1).Controls("文件(&F)").Controls("页面设置(&U)...").Enabled = True
End Sub
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-5-24 00:43 , Processed in 0.044660 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表