查看單個文章
舊 2006-04-18, 03:38 PM   #17 (permalink)
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

妙用Microsoft Excel的VBA批量列印工作表

Microsoft Excel是很多辦公一族的常用工具,其強大的功能幾乎能滿足所有有資料處理方面的要求。而其原有的的巨集指令更是能簡化一些資料處理中重複性的工作。
一次筆者要把一批資料的紙張大小由B4紙調整為A4紙,並在列印時縮放成一頁(即一頁寬,一頁高)。由於資料都是由單獨工作簙構成的,對於每一個明細資料,都需要逐個開啟工作簙,設定每一張工作表的頁面設定,然後再列印,工作量很大。然而筆者利用巨集很快便完成了所有的工作。方法如下:
啟動Microsoft Excel,按快捷鍵「Alt+F11」進入Microsoft Visual Basic編輯器。在編輯器中按下表單「插入→模組」,在新增的模組中輸入以下程式碼:
Sub printer()
With Application.FileSearch
.LookIn = "E:\財務決算\變更報表\" '設定文件的搜尋路徑
.FileType = msoFileTypeExcelWorkbooks '設定要搜尋的檔案類型為活頁簿
If .Execute > 0 Then '如果找到一個或多個文件
For i = 1 To .FoundFiles.Count '設定開啟工作簙的循環
Workbooks.Open Filename:=.FoundFiles(i) '開啟找到的每一個工作簙
For j = 1 To Worksheets.Count '設定逐項選項工作表的循環
Worksheets(j).Select '選項工作表
With ActiveSheet.PageSetup '設定當前工作表的頁面設定
.PaperSize = xlPaperA4 '設定紙張大小為A4紙
.Zoom = False
.FitToPagesWide = 1 '設定為1頁寬
.FitToPagesTall = 1 '設定為1頁高
End With
Next j '選項下一張工作表
ActiveWorkbook.PrintOut '列印整個工作簙
ActiveWorkbook.Save '儲存當前工作簙
ActiveWorkbook.Close '關閉當前工作簙
Next i '開啟下一個工作簙
Else
MsgBox "沒有找到任何活頁簿文件" '提示沒有找到任何活頁簿文件
End If
End With
End Sub
輸入程式碼後,按快捷鍵「F5」執行巨集,這時系統就會開啟找到的第一個活頁簿,並依次設定每一張工作表的紙張大小為A4紙張,縮印成一頁寬和一頁高,然後再列印整個工作簙,儲存並結束,接著依次開啟當前目錄下的所有活頁簿,執行相同的工作。
注意,程序所搜尋到的文件僅是當前目錄下的活頁簿,不包括子目錄下的文件。
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次