Excel精英培训网

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

[已解决]打印设置问题。求助

[复制链接]
发表于 2011-9-27 13:26 | 显示全部楼层 |阅读模式
请大家帮个忙

能否。
设置按钮。让目录1 的354行    变成 目录2 这样打印。每60行 打印一页。

具体可看附件。。
最佳答案
2011-9-28 13:07
Sub 打印()
   Dim i, j
   Dim myRow, myCol
   Dim mySheet As Worksheet
   Dim mySheet2 As Worksheet
   
   Set mySheet2 = ActiveSheet
   Set mySheet = Sheets("目录1")
   
   myRow = 60 '每页行数
   myCol = 2  '每页表格数
   myCol2 = 4 '表格间间隔列数
   
   mySheet2.Range("A1:G65536").Clear '清除原表内容
   mycnt = mySheet.Range("A65536").End(xlUp).Row '目录1行数
   
   
   
  For j = 0 To myCol - 1
     '表格标题行
     mySheet.Select
     Range("A1:C1").Copy
     mySheet2.Select
     Range("A1").Offset(0, j * myCol2).PasteSpecial
   For i = 0 To Int(mycnt / myRow / myCol)
     '表格数据
     mySheet.Select
     Range("A2:C61").Offset((i * myCol + j) * myRow, 0).Copy
     
     mySheet2.Select
     Range("A2").Offset(i * myRow, j * myCol2).PasteSpecial
   
  Next i
  
  Next j

End Sub

是不是这样?

1~ 111.rar

44.5 KB, 下载次数: 17

发表于 2011-9-27 13:53 | 显示全部楼层
回复 kakaco 的帖子

1~ 111.rar (45.23 KB, 下载次数: 5)
回复

使用道具 举报

 楼主| 发表于 2011-9-27 13:59 | 显示全部楼层
回复 macky591 的帖子

亲爱的。

是变成目录2 的情况。

就是一张纸 可以打印120 个序号。。


回复

使用道具 举报

发表于 2011-9-27 14:09 | 显示全部楼层
回复 kakaco 的帖子

1~ 111.rar (43.85 KB, 下载次数: 5)
回复

使用道具 举报

 楼主| 发表于 2011-9-27 14:18 | 显示全部楼层
回复 macky591 的帖子

好吧。我错了。

谢谢。您的回复。。

我的初衷是这样的。已知 目录1 的这么多个序号项目。

我想打印成  1个A4 有120个序号。类似目录 2  的情况。。

并不是已经画成 目录 2 的情况然后再做打印。。。


回复

使用道具 举报

发表于 2011-9-27 14:20 | 显示全部楼层
{:011:}帮不了你,期待高手
回复

使用道具 举报

发表于 2011-9-27 14:49 | 显示全部楼层
有点复杂。。。。。
回复

使用道具 举报

发表于 2011-9-28 13:07 | 显示全部楼层    本楼为最佳答案   
Sub 打印()
   Dim i, j
   Dim myRow, myCol
   Dim mySheet As Worksheet
   Dim mySheet2 As Worksheet
   
   Set mySheet2 = ActiveSheet
   Set mySheet = Sheets("目录1")
   
   myRow = 60 '每页行数
   myCol = 2  '每页表格数
   myCol2 = 4 '表格间间隔列数
   
   mySheet2.Range("A1:G65536").Clear '清除原表内容
   mycnt = mySheet.Range("A65536").End(xlUp).Row '目录1行数
   
   
   
  For j = 0 To myCol - 1
     '表格标题行
     mySheet.Select
     Range("A1:C1").Copy
     mySheet2.Select
     Range("A1").Offset(0, j * myCol2).PasteSpecial
   For i = 0 To Int(mycnt / myRow / myCol)
     '表格数据
     mySheet.Select
     Range("A2:C61").Offset((i * myCol + j) * myRow, 0).Copy
     
     mySheet2.Select
     Range("A2").Offset(i * myRow, j * myCol2).PasteSpecial
   
  Next i
  
  Next j

End Sub

是不是这样?
回复

使用道具 举报

 楼主| 发表于 2011-9-28 13:57 | 显示全部楼层
回复 QLZ0602 的帖子

非常感谢。。

如果可以的话。可以帮忙教教我 VBA。
回复

使用道具 举报

 楼主| 发表于 2011-9-28 14:06 | 显示全部楼层
Private Sub CommandButton1_Click()
For j = 1 To 3
    Columns(j + 4).ColumnWidth = Columns(j).ColumnWidth
Next
    [a1].Resize(1, 3).Copy [e1]
For i = 62 To [a65536].End(3).Row Step 60
    Cells(i, 1).Resize(60, 3).Copy Cells(i - 60, 5)
    Cells(i, 1).Resize(60, 3).EntireRow.Delete
Next
End Sub
这个是一个高手给的。。
就是看不懂。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-19 05:38 , Processed in 0.253614 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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