搜索
您的当前位置:首页如何用Excel VBA批量打印文件

如何用Excel VBA批量打印文件

来源:乌哈旅游


如何用Excel VBA批量打印文件

有时候一个文件夹内有很多Excel文件,几十个,上百个,如果一个个的打开,然后再打印,显然重复劳动,效率低下。

能不能用Excel VBA批量打印同一文件夹内的所有文件?

答案当然是肯定的。

假设我们的桌面上有个名叫“材料”的文件夹,内有上百个EXCEL文件需要打印

打开EXCEL文件→Visual Basic编辑器(Alt+F11)→插入→模块

以下是VBA代码

***********************************************************************

Sub test()

Set rrr = CreateObject(\"Scripting.FileSystemObject\")

Set r = rrr.GetFolder(\"C:\\Documents and Settings\\Administrator\\桌面\\材料\")

For Each i In r.Files

Workbooks.Open Filename:=(\"C:\\Documents and Settings\\Administrator\\桌面

\\材料\\\" + i.Name + \"\")

ActiveSheet.PageSetup.PrintArea = \"\"

ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

ActiveWindow.Close saveChanges:=False

Next

End Sub

***********************************************************************************

注释:ActiveSheet.PageSetup.PrintArea = \"\" 的目的是“取消打印区域”

因为有时候这些excel文件并不是我们自己写得,可能已经被别人设定好了打印区域,并保存在文件中,这是我们所看不到的。(好比方所,其中某个文件的主人由于需要,设定从Excel表的5行到第10行为打印区域,但是我们并看不到。当我们点击“文件”-->打印,把材料打印出来时,才发现打印的并不是整张表格,而是别人设定的打印区域,这显然不符合我们的要求,所以我们要取消打印区域)。

附:如果先是存在多级目录,大文件夹套很多小文件夹,小文件夹里装的才是文件,怎么办?

解:以大文件为根目录,把此根目录下的所有文件拷贝到同一文件夹内再进行操作。可以用Windows带的“搜索”功能找到大文件夹内的所有文件,再复制。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top