excel2007怎么批量打印?能个我vba?
2个回答
展开全部
我对打印excel没有任何经验(手动也没打过,也没打印机),但我之前写了个方便汇总一个文件夹内所有的excel的宏,说到底就是要遍历文件夹内所有的excel,以下代码的这两句我是参考网上用VBA打印的语句的。
.PageSetup.PrintArea = ""(这句意思是消除预设打印区域)
.ActiveWindow.SelectedSheets.PrintOut copies:=1, collate:=True
代码虽然我没办法测试,不过应该可行的,你可以试试,只要在一个新建excel输入以下代码,保存,放进你需要打印的文件夹,再打开这个excel文件,运行,就OK了!至于一个文件内还有子文件,子文件内又含有excel那种需要用到递归,那种写起来比较麻烦,我就不给出了
Sub 打印()
Dim mypath As String, myname As String, Dname As String
mypath = ThisWorkbook.Path
myname = ThisWorkbook.Name
Dname = Dir(mypath & "\*.xls")
Do While Dname <> ""
If Dname <> myname Then
With GetObject(mypath & "\" & Dname)
.Activesheet.PageSetup.PrintArea = ""
.ActiveWindow.SelectedSheets.PrintOut copies:=1, collate:=True
.Close False
End With
End If
Dname = Dir
Loop
End Sub
.PageSetup.PrintArea = ""(这句意思是消除预设打印区域)
.ActiveWindow.SelectedSheets.PrintOut copies:=1, collate:=True
代码虽然我没办法测试,不过应该可行的,你可以试试,只要在一个新建excel输入以下代码,保存,放进你需要打印的文件夹,再打开这个excel文件,运行,就OK了!至于一个文件内还有子文件,子文件内又含有excel那种需要用到递归,那种写起来比较麻烦,我就不给出了
Sub 打印()
Dim mypath As String, myname As String, Dname As String
mypath = ThisWorkbook.Path
myname = ThisWorkbook.Name
Dname = Dir(mypath & "\*.xls")
Do While Dname <> ""
If Dname <> myname Then
With GetObject(mypath & "\" & Dname)
.Activesheet.PageSetup.PrintArea = ""
.ActiveWindow.SelectedSheets.PrintOut copies:=1, collate:=True
.Close False
End With
End If
Dname = Dir
Loop
End Sub
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询