Microsoft Excel'de VBA kullanarak bir klasördeki tüm çalışma kitaplarını yazdırın

Anonim

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