Excel精英培训网

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

将打印区域通过vba自动生成一张新表

[复制链接]
发表于 2013-5-30 22:11 | 显示全部楼层 |阅读模式
           求一代码,将已经设置好的打印区域,重新生成一张新表,并保持打印区域内的字体格式不变,打开新表就可以直接打印,点击代码后新表为打开可预览状态。。。。。
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-5-30 22:26 | 显示全部楼层
  1. Sub test()
  2.     Dim strPrint$, rgPrint As Range
  3.     With ActiveSheet.PageSetup
  4.     strPrint = .PrintArea
  5.     End With
  6.     If Len(strPrint) = 0 Or strPrint = "False" Then MsgBox "当前无打印设置区域": Exit Sub
  7.     Set rgPrint = Range(strPrint)
  8.     Worksheets.Add
  9.     rgPrint.Copy Range("a1")
  10.     ActiveSheet.PrintPreview
  11. End Sub
复制代码
回复

使用道具 举报

发表于 2013-5-30 22:27 | 显示全部楼层
其实利用名称 Print_Area 来判断更好。
回复

使用道具 举报

发表于 2013-5-30 22:31 | 显示全部楼层
  1. Sub test2()
  2.     Dim rgPrint As Range
  3.     On Error Resume Next
  4.     Set rgPrint = Range("Print_Area")
  5.     If rgPrint Is Nothing Then MsgBox "当前工作表无打印设置区域": Exit Sub
  6.     Worksheets.Add
  7.     rgPrint.Copy Range("a1")
  8.     ActiveSheet.PrintPreview
  9. End Sub
复制代码
回复

使用道具 举报

发表于 2013-5-30 22:34 | 显示全部楼层
不过行高列宽的格式就没有过来了。
回复

使用道具 举报

 楼主| 发表于 2013-5-30 22:45 | 显示全部楼层
hwc2ycy 发表于 2013-5-30 22:34
不过行高列宽的格式就没有过来了。

不可以设置成和之前一样的行高列宽吗???
回复

使用道具 举报

发表于 2013-5-30 22:54 | 显示全部楼层
本帖最后由 hwc2ycy 于 2013-5-30 22:56 编辑

你用技巧试下就知道了。
不过再刷几次格式就好了,
回复

使用道具 举报

 楼主| 发表于 2013-5-30 23:39 | 显示全部楼层
hwc2ycy 发表于 2013-5-30 22:54
你用技巧试下就知道了。
不过再刷几次格式就好了,

明天我试试,今天晕死了,你的代码都还没研究,不过先谢了
回复

使用道具 举报

 楼主| 发表于 2013-5-31 11:02 | 显示全部楼层
hwc2ycy 发表于 2013-5-30 22:54
你用技巧试下就知道了。
不过再刷几次格式就好了,

今早测试了代码,发现除了格式不能统一以外,就连设置过的打印设置里的选项也不过一同在新表中体现,能否重新编写一下代码啊,麻烦咯
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 19:25 , Processed in 0.872968 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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