当前位置:编程学习 > VB >>

vb 设置 EXCEL 打印区域 批量打印




如何把 工作簿中每个工作表(sheet1....) 里有数据的区域设置为打印区域  之后打印每个工作表

打印就是把 '工作簿' 中的每个 '工作表'  一起发送到打印机 等待打印   


--------------------编程问答-------------------- 我建议你先设置排板县设置好。最好也把页面也给设置好。要不然,你不但版面不齐,而且会带出空白。
然后用程序循环sheet的表格一个个完成打印。 --------------------编程问答-------------------- 友情顶一下。 --------------------编程问答-------------------- 在EXCEL设计一宏命令,然后参照宏命令中的代码,移植到VB中。 --------------------编程问答-------------------- 数据的区域设置为打印区域。
这个统一区域吗。
每一个工作表的区域 要是有的大有的小,那就不好办了。
代码参考如下:【主要方法】
Dim sh As Worksheet
for i = 1 to ThisWorkbook.Worksheets.Count 
  sh =ThisWorkbook.Worksheets(i)  '去每一个你说的工作表。
  sh.Range("A1:H19").Select    '选择要打印的区域。
  sh.PageSetup.PrintArea = "$A$1:$H$19" '设定打印区域。
  st.PrintOut Copies:=1, Collate:=True  '直接用默认的打印机打印出来。当然你可以行PageSetup页面设置的。
next --------------------编程问答-------------------- 有理
引用 3 楼 hwmys 的回复:
在EXCEL设计一宏命令,然后参照宏命令中的代码,移植到VB中。
--------------------编程问答--------------------
引用 4 楼 linjimu 的回复:
数据的区域设置为打印区域。 
这个统一区域吗。 
每一个工作表的区域 要是有的大有的小,那就不好办了。 
代码参考如下:【主要方法】 
Dim sh As Worksheet 
for i = 1 to ThisWorkbook.Worksheets.Count 
  sh =ThisWorkbook.Worksheets(i)  '去每一个你说的工作表。 
  sh.Range("A1:H19").Select    '选择要打印的区域。 
  sh.PageSetup.PrintArea = "$A$1:$H$19" '设定打印区域。 
  st.PrintOut Copies:=1, Colla…


我试了一下,好像不行。能告诉如何试用吗?
我是Visual Basic编辑器-插入-模板-运行,这样执行宏,对吗? --------------------编程问答-------------------- 先手动操作一遍,用宏记录下来,然后就可以运行这个宏了。
成功后,改造为VB代码,给VB调用。
也可以在Excel中,VB直接调用。
--------------------编程问答-------------------- Option Explicit
Sub 打印()
Dim i As Integer
For i = 1 To ThisWorkbook.Worksheets.Count
ThisWorkbook.Worksheets(i).Activate '去每一个你说的工作表。
With ActiveSheet
   '下面两句是设置打印区间,对于已经设置过打印区间的,可以省略。
   ' .Range("A1:H19").Select    '选择要打印的区域。
   ' .PageSetup.PrintArea = "$C$4:$G$12" '设定打印区域。
    .PrintOut Copies:=1, Collate:=True  '直接用默认的打印机打印出来。当然你可以行PageSetup页面设置的。
End With
Next
End Sub --------------------编程问答--------------------
Option Explicit
Sub 打印()
Dim i As Integer
For i = 1 To ThisWorkbook.Worksheets.Count
ThisWorkbook.Worksheets(i).Activate '去每一个你说的工作表。
With ActiveSheet
   '下面两句是设置打印区间,对于已经设置过打印区间的,可以省略。
   ' .Range("A1:H19").Select    '选择要打印的区域。
   ' .PageSetup.PrintArea = "$C$4:$G$12" '设定打印区域。
    .PrintOut Copies:=1, Collate:=True  '直接用默认的打印机打印出来。当然你可以行PageSetup页面设置的。
End With
Next
End Sub


貌似现实格式不对……
这个样子?? --------------------编程问答--------------------

Option Explicit
Sub 打印()
Dim i As Integer
For i = 1 To ThisWorkbook.Worksheets.Count
ThisWorkbook.Worksheets(i).Activate '去每一个你说的工作表。
With ActiveSheet
   '下面两句是设置打印区间,对于已经设置过打印区间的,可以省略。
   ' .usedrange.Select    '选择要打印的区域。
   ' .PageSetup.PrintArea = Selection.Address '设定打印区域。
    .PrintOut Copies:=1, Collate:=True  '直接用默认的打印机打印出来。当然你可以行PageSetup页面设置的。
End With
Next
End Sub

貌似这样才符合要求……
补充:VB ,  VBA
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,