Bu yazımızda bir klasör içindeki tüm Excel dosyalarını yazdırmak için bir makro oluşturacağız.
Bir klasör içinde yazdırmak istediğimiz bazı Excel dosyalarımız var. Hepsinin dosya uzantısı aynı ".xlsx"
Kod açıklaması
Dir(TargetFolder & FileFilter)
Yukarıdaki kod, klasör yolundaki ilk dosyanın dosya adını almak için kullanılır.
Workbooks.Open TargetFolder & FileName
Yukarıdaki kod, tanımlanan çalışma kitabını açmak için kullanılır.
ActiveWorkbook.PrintOut
Yukarıdaki kod, aktif çalışma kitabını yazdırmak için kullanılır.
Lütfen kod için aşağıdan takip edin
Seçenek Explicit Sub PrintAllWorkbooksInFolder(TargetFolder As String, FileFilter As String) 'Dim FileName As String değişkenini bildirme 'Ekran güncellemelerini devre dışı bırakma Application.ScreenUpdating = False 'Hedef klasör adının sonuna yol ayırıcı ekleme If Right(TargetFolder, 1) "\" Sonra TargetFolder = TargetFolder & "\" End If 'Dosya filtresine varsayılan yol atanıyor If FileFilter = "" Sonra FileFilter = "*.xls" 'FileName = Dir(TargetFolder & FileFilter) klasöründeki ilk dosyanın adını alın Len(DosyaAdı) > 0 Eğer DosyaAdı ThisWorkbook.Name Sonra 'Çalışma kitabını aç Workbooks.Open TargetFolder & FileName' Çalışma kitabındaki tüm sayfaları yazdırır ActiveWorkbook.PrintOut 'Çalışma kitabını herhangi bir değişikliği kaydetmeden kapatın ActiveWorkbook.Close False End If 'Dosya adını al klasördeki sonraki dosya FileName = Dir Wend End Sub Sub CallingProcedure() 'Değişkenleri Bildirme Dim FolderPath, FileName As String ' Sayfa1'deki metin kutusundan değerler alınıyor FolderPath = Sheet1.TextBox1.Value FileName = Sheet1.TextB ox2.Value ' PrintAllWorkbooksInFolder prosedürünü çağırıyor PrintAllWorkbooksInFolder FolderPath, FileName End Sub
Bu blogu beğendiyseniz, Facebook'ta arkadaşlarınızla paylaşın. Ayrıca bizi Twitter ve Facebook'ta da takip edebilirsiniz.
Sizden haber almayı çok isteriz, işimizi nasıl geliştirebileceğimizi ve sizin için nasıl daha iyi hale getirebileceğimizi bize bildirin. E-posta sitesinde bize yazın