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 --------------------编程问答-------------------- 有理
--------------------编程问答--------------------
我试了一下,好像不行。能告诉如何试用吗?
我是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