Excel精英培训网

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

[已解决]按单号分开全部打印

[复制链接]
发表于 2014-5-27 08:09 | 显示全部楼层 |阅读模式

疑问在附件中
最佳答案
2014-5-27 08:57
本帖最后由 zjdh 于 2014-5-27 09:05 编辑

Sub test()
    R = Sheets(1).Range("A65536").End(3).Row
    With Sheets(1).Range("A2:I" & R)
        Set W = .Find("出库单",  LookAt:=xlWhole)
        firstAddress = W.Address
        F = 1
        Do
            F2 = W.Row - 1
            Range(Cells(F, 1), Cells(F2, 9)).PrintOut
            Set W = .FindNext(W)
            F = F2 + 1
        Loop While Not W Is Nothing And W.Address <> firstAddress
        Range(Cells(F, 1), Cells(R, 9)).PrintOut
    End With
End Sub

求助.zip

9.57 KB, 下载次数: 22

发表于 2014-5-27 08:20 | 显示全部楼层
本帖最后由 zjdh 于 2014-5-27 08:23 编辑

你的这种设计太.....
一张单据一页就方便多了。
最好是一个模板,一个数据库,自由选择,自动填入模板连续打印。
参见我的帖子中的打印功能
http://www.excelpx.com/thread-201041-1-1.html
回复

使用道具 举报

发表于 2014-5-27 08:40 | 显示全部楼层
  1. Public Sub ppp()
  2.     Dim ws As Worksheet
  3.     Set ws = ActiveSheet
  4.     With ws.PageSetup
  5.         .PaperSize = xlPaperA4    'A4打印纸
  6.         .CenterHorizontally = True    '页面水平居中
  7.         .CenterVertically = True      '页面垂直居中
  8.         .Orientation = xlPortrait   '纵向打印
  9. '        .Orientation = xlLandscape    '横向打印
  10.     End With
  11.     ws.PageSetup.PrintArea = "A1:i18"
  12.     ws.PrintOut
  13.     ws.PageSetup.PrintArea = "a19:i30"
  14.     ws.PrintOut
  15.     ws.PageSetup.PrintArea = "A31:i37"
  16.     ws.PrintOut
  17.     ws.PageSetup.PrintArea = "a38:i60"
  18.     ws.PrintOut
  19.     Set ws = Nothing
  20. End Sub
复制代码

评分

参与人数 1 +18 收起 理由
yewei113 + 18

查看全部评分

回复

使用道具 举报

发表于 2014-5-27 08:42 | 显示全部楼层
没有设置好分页符,在分页预览模式下可以看到问题,每一张出库单下插入分页符就成了
回复

使用道具 举报

发表于 2014-5-27 08:57 | 显示全部楼层    本楼为最佳答案   
本帖最后由 zjdh 于 2014-5-27 09:05 编辑

Sub test()
    R = Sheets(1).Range("A65536").End(3).Row
    With Sheets(1).Range("A2:I" & R)
        Set W = .Find("出库单",  LookAt:=xlWhole)
        firstAddress = W.Address
        F = 1
        Do
            F2 = W.Row - 1
            Range(Cells(F, 1), Cells(F2, 9)).PrintOut
            Set W = .FindNext(W)
            F = F2 + 1
        Loop While Not W Is Nothing And W.Address <> firstAddress
        Range(Cells(F, 1), Cells(R, 9)).PrintOut
    End With
End Sub
回复

使用道具 举报

 楼主| 发表于 2014-5-27 11:21 | 显示全部楼层
zjdh 发表于 2014-5-27 08:20
你的这种设计太.....
一张单据一页就方便多了。
最好是一个模板,一个数据库,自由选择,自动填入模板连续 ...

我这是根据别的东西该出来的,补资料用的,不是平时自己出库用的
回复

使用道具 举报

 楼主| 发表于 2014-5-27 11:21 | 显示全部楼层
ppp710715 发表于 2014-5-27 08:40

谢谢了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 09:11 , Processed in 0.428087 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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