اگر کتابهای کار زیادی دارید که در طول سالها جمعآوری شدهاند، ممکن است نیاز به چاپ برخی از کاربرگها از هر یک از آنها داشته باشید. به عنوان مثال، ممکن است پوشهای داشته باشید که حاوی یک کتاب کار برای هر یک از بخشهای شرکت شما برای دهه قبل است. اگر شرکت شما دارای هشت بخش است، به این معنی است که شما 80 کتاب کار در پوشه دارید. اکنون، اگر نیاز به چاپ شکل های سه ماهه دوم و سه ماهه سوم (از کاربرگ های دوم و سوم هر کتاب کار) داشته باشید، شروع به دیدن مشکل می کنید. بارگیری هر کتاب کار و سپس چاپ برگههای انتخابی ممکن است زمان زیادی را ببرد.
یک راه سریعتر ایجاد یک ماکرو است که چاپ را برای شما انجام دهد. ماکرو زیر با درخواست از شما برای یک مسیر دایرکتوری شروع می شود. به شرطی که مسیری را مشخص کنید، ماکرو شروع به بارگیری هر فایل کتاب کار در فهرست می کند و سپس کاربرگ دوم و سوم را از هر کدام چاپ می کند. (ماکرو واقعاً اهمیتی نمیدهد که چه نوع فایلهای کتاب کار در دایرکتوری وجود دارد - آنها میتوانند فایلهای XLS، XLSX یا XLSM باشند. باید همه آنها را بارگیری کند.) پس از چاپ، کتاب کار بسته میشود.
Public Sub PrintWorkbooks()
Dim sCurFile As String
Dim sPath As String
Get the path
sPath = InputBox("Starting path?", "PrintWorkbooks")
If sPath <> "" Then
On Error Resume Next
Application.ScreenUpdating = False
If Right(sPath, 1) <> "" Then
sPath = sPath & ""
End If
sCurFile = Dir(sPath & "*.xls*", vbNormal)
Do While Len(sCurFile) <> 0
Workbooks.Open sPath & sCurFile, , True
With Workbooks(sCurFile)
.Worksheets(2).PrintOut
.Worksheets(3).PrintOut
.Close SaveChanges:=False
End With
sCurFile = Dir
DoEvents
Loop
Application.ScreenUpdating = True
On Error GoTo 0
End If
End Sub
بدیهی است که اگر تعداد زیادی کتاب کار در دایرکتوری دارید، چاپ ممکن است کمی طول بکشد. ممکن است بخواهید زمانی را پیدا کنید که کار دیگری برای انجام دادن نداشته باشید و سپس اجازه دهید ماکرو شروع به کار کند.