Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1770|回复: 9

[已解决]为什么此段打印代码会自动打印两次

[复制链接]
发表于 2013-7-19 09:40 | 显示全部楼层 |阅读模式
  1. Sub 打印()
  2. y = Application.Dialogs(8).Show
  3. If y = True Then
  4. Sheet1.[p3] = Sheet1.[p3] + 1
  5. ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
  6. Else
  7. End
  8. End If
  9. End Sub
复制代码
我用这段代码想实现目的是:每打印完当前内容后,编号自动加上1,现在测试下来,运行这个宏,会自动打印两份,请问是那里出了问题?
最佳答案
2013-7-19 10:09
把+1下一行干掉就可以了
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-7-19 09:43 | 显示全部楼层
你也有不理解的问题?

点评

谁都会有些不理解的问题  发表于 2013-7-19 09:48
回复

使用道具 举报

发表于 2013-7-19 09:48 | 显示全部楼层
你的问题,要换个马甲来提问,要不谁敢回答呀?
回复

使用道具 举报

发表于 2013-7-19 09:50 | 显示全部楼层
资深MM浮出水面了
回复

使用道具 举报

发表于 2013-7-19 09:53 | 显示全部楼层
Sheet1.[p3] = Sheet1.[p3] + 1


这句想做啥?对这个打印(),有啥要求?
回复

使用道具 举报

 楼主| 发表于 2013-7-19 09:54 | 显示全部楼层
P3单元格是打印单编号,想实现打印后编号自动加1
回复

使用道具 举报

发表于 2013-7-19 10:09 | 显示全部楼层    本楼为最佳答案   
把+1下一行干掉就可以了
回复

使用道具 举报

发表于 2013-7-19 10:13 | 显示全部楼层
Application.Dialogs(8).Show,这个本身就是打印对话框。
下面再来个PRINTOUT,这不就是第二次打印了么。
回复

使用道具 举报

发表于 2013-7-19 10:13 | 显示全部楼层
xlDialogPrint 8 “打印”对话框
回复

使用道具 举报

发表于 2013-7-19 10:15 | 显示全部楼层
  1. Sub 打印()
  2.     y = Application.Dialogs(8).Show    '弹出打印对话框,手动决定是否打印

  3.     If y = True Then
  4.         '有打印
  5.         Sheet1.[p3] = Sheet1.[p3] + 1
  6.         ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True    '(又)自动打印
  7.     Else
  8.         '没打印
  9.         End
  10.     End If
  11. End Sub


  12. Sub 打印2()
  13.     If Application.Dialogs(8).Show Then
  14.         Sheet1.[p3] = Sheet1.[p3] + 1
  15.     End If
  16. End Sub
复制代码
打印2次的原因是,在第1次打印成功以后,又自动打印了1次。
改写为打印2(),就可以了

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-29 03:30 , Processed in 0.254879 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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