ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

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

[复制链接]

TA的精华主题

TA的得分主题

发表于 2010-8-8 19:18 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
原帖由 zjdh 于 2010-8-3 08:26 发表
那就作点修改:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
    A = InputBox("请输入密码:")
    If A  "123" Then
    Cancel = True
    MsgBox "节约用纸 拒绝打印", vbInformation
    End If
...



是不是每个拒绝打印的工作表都要加上这段代码才可以,能不能设置下让EXCEL所有东西打印前都要输入密码?

TA的精华主题

TA的得分主题

发表于 2010-8-9 20:26 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

回复 13楼 YMUUYPS 的帖子

若要想所有EXCEL文件打印前都要输入密码,可写一个加载宏,
宏的功能是屏蔽所有具有打印命令的打印菜单和按钮,,同时建立
一个命令或按钮,将它考入(对于Office2003)
C:\Program Files\Microsoft Office\OFFICE11\FecmenStart中
打开Excel时就会自动加载宏,实现以上功能,建立新按钮或菜单,
只有它们才能执行打印,而且必须输入密码。

TA的精华主题

TA的得分主题

发表于 2010-8-9 20:32 | 显示全部楼层

回复 14楼 dcb11111 的帖子

我已将宏放入“打印”页,你试试可以“打印浏览”该页吗?

只可打印不可浏览.rar

23.38 KB, 下载次数: 50

TA的精华主题

TA的得分主题

发表于 2010-8-10 07:48 | 显示全部楼层
你的文件中已经有了Private Sub Workbook_BeforePrint事件
再加入以上事件当然会出现二义性的错误

TA的精华主题

TA的得分主题

发表于 2010-8-10 08:02 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
你可以
将代码
If  InputBox("请输入密码:")<> "123"  Then
     Cancel = True
     MsgBox "节约用纸 拒绝打印", vbInformation
     Exit  Sub
End If
放入Private Sub Workbook_BeforePrint事件的前段

或用
http://club.excelhome.net/redire ... o=lastpost#lastpost
22楼的办法

TA的精华主题

TA的得分主题

发表于 2010-8-14 09:27 | 显示全部楼层
你连复制都不会??!!
If  InputBox("请输入密码:")<> "123"  Then
     Cancel = True
     MsgBox "节约用纸 拒绝打印", vbInformation
     Exit  Sub
End If

为何要把"<>"漏掉??当然会编译错误!!

TA的精华主题

TA的得分主题

发表于 2010-8-14 09:34 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
帮你修改了

打印的密码2.rar

26.27 KB, 下载次数: 38

TA的精华主题

TA的得分主题

发表于 2010-8-14 10:24 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
预览有必要禁止吗?

TA的精华主题

TA的得分主题

发表于 2010-8-15 15:53 | 显示全部楼层
1. total宏是统计当月打印次数和当月最后件号(序号)的,
  是特定在“查询”页运行的,由“统计”按钮触动运行。
2. 按你的修改如下,运行正常。
Private Sub Workbook_BeforePrint(Cancel As Boolean)
    ActiveSheet.Unprotect ("123")
    With Sheets("存储")
        bh = Year(Date) & Format(Month(Date), "00")    '编号前段
        If Left([f8], 6) = bh Then      '如是同月
            [f8] = bh & Format(Mid([f8], 7) + 1, "00000")    '编号加1
        Else               
            [f8] = bh & "00001"  '重起编号
        End If
        Application.Calculation = xlAutomatic
        [e37] = Val([e37]) + 1          '件数加1
        Application.Calculation = xlManual
        h = .[k65536].End(3).Row + 1    '存储位置
        If .[a1] < " " Then h = 1       '空库处理
        .Cells(h, 1) = [e37]            '存序号

        For r = 15 To 39    '存随机数据
            ar = Range("b" & r & ":g" & r)
            .Cells(h, r * 6 - 73).Resize(1, 6) = ar
        Next r
    End With
    ActiveSheet.Protect ("123")
End Sub
3. 真不明白你除了记录防伪数据外,还要记录36行、38行那些东西干嘛?

TA的精华主题

TA的得分主题

发表于 2010-8-16 07:53 | 显示全部楼层
1. 我当然知道将total()按以上修改就不会将其他页内容删除,可那没有必要!
2. 当你把For r = 15 To 39Step 2 改成For r = 1 To  39 时,下面的语句:
    .Cells(h, r * 6 - 73).Resize(1, 6) = ar     会出现负数列,当然出错!!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-5-12 18:16 , Processed in 0.046963 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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