查看單個文章
舊 2006-06-14, 01:22 AM   #31 (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 次