作者:乔山办公网日期:
返回目录:excel表格制作
Sub 批量打印设置()
Dim lj
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(0, "选择文件e5a48de588b6e799bee5baa6331夹", 0, 0)
If objFolder Is Nothing Then
MsgBox "未选择文件夹"
Exit Sub
End If
lj = objFolder.self.Path
If Right(lj, 1) <> "\" Then
lj = lj & "\"
End If
Set objFolder = Nothing
Set objShell = Nothing
myFile = Dir(lj & "*.xls")
While myFile <> ""
Workbooks.Open lj & myFile
'这里放入打印设置代码,可通过录制宏来自动生成,然后拷贝到此处
ActiveWorkbook.Close 1
myFile = Dir
Wend
End Sub
1.先准备一个测试的xls文件进行情景假设,一共3个标签页,内容均有超出,如图所示。
2.打开“页面设置”对话框,发现左右页边距zhidao均为1.9;
若左右编辑均调整为0.1,则超出内容就不会换页;
但是这样只是设置一个页面的,如果有几百页,一个一内个调整不仅工作量很大,还很容易出错。
3.在当前选中的Sheet页上点右键,在弹出的菜单上选择“选定全部工作表”;
此时会看到,所有的Sheet页都变成了选中状态。
4.此时再进行第2步的操作,然后就等上一段时间。此时不要做任何操作,等待它自己完成。容
界面能操作了,就表示设置完毕了,此时再检查各个页面的设置,发现均以设置完毕。
5.此方法不仅适用在页面设置上,其他多标签页的批量设置也均类似.
代码:
sub 宏1()
dim p,n,st as worksheet
p="c:\" '文件百所在位置度,你可能需要修问改,答没必须是\
n=dir(p & "&.xls*")
do while n<>""
with workbooks.open(p & n)
for each st in .sheets
if st.name="施工回记录答" or st.name="施工记录 (2)" or st.name="施工记录 (3)" then st.printout
next st
.close
end with
n=dir
loop
end sub
这个问题,直接用宏即可,能设置打印区域,还能实现一键打印。发个模拟文件给我。我给你做一个。