/ / Excel'de bir dizinde dosyalar VBA

Excel VBA'da bir dizindeki dosyalar

Aşağıda bir programa bakacağız Excel VBA o tüm kapalı çalışma kitaplarından ve çalışma sayfalarından geçiyor içinde rehberve tüm isimleri görüntüler.

Book1.xls, Book2.xls, Book3.xls, Book4.xls ve Book5.xls indirin ve bunları "C: test" e ekleyin

Durum:

Dizin örneğindeki dosyalar

Komut düğmesine aşağıdaki kod satırlarını ekleyin:

1. İlk olarak, tür String'in iki değişkenini, bir Çalışma Sayfası nesnesini ve Tamsayı türünde iki değişken olduğunu beyan ederiz.

Dim directory As String, fileName As String, sheet As Worksheet, i As Integer, j As Integer

2. Ekran titremesini önlemek için ekran güncellemesini kapatın.

Application.ScreenUpdating = False

3. Değişken dizini başlat. İlk * .xl'yi bulmak için Dir işlevini kullanıyoruz? Bu dizinde saklanan dosya.

directory = "c:test"
fileName = Dir(directory & "*.xl??")

Not: Dir işlevi, tüm farklı Excel dosyaları türlerini aramak için çoklu karakter (*) ve tek karakter (?) Joker karakterlerinin kullanımını destekler.

4. fileName değişkeni artık dizinde bulunan ilk Excel dosyasının adını tutar. Döngü Yaparken Ekle.

Do While fileName <> ""

Loop

Aşağıdaki kod satırlarını (5, 6, 7, 8 ve 9) döngüye ekleyin.

5. Tamsayı türündeki değişkenleri başlatın ve Excel dosyasının adını satırın ilk sütununa ekleyin.

i = i + 1
j = 2
Cells(i, 1) = fileName

6. Kapalı Excel dosyalarından veri (veya sayfa adları) çıkarmak için basit bir yol yoktur. Bu nedenle, Excel dosyasını açıyoruz.

Workbooks.Open (directory & fileName)

7. Excel dosyasının tüm sayfa isimlerini i. Satırın diğer sütunlarına ekleyin.

For Each sheet In Workbooks(fileName).Worksheets
    Workbooks("files-in-a-directory.xls").Worksheets(1).Cells(i, j).Value = sheet.Name
    j = j + 1
Next sheet

8. Excel dosyasını kapatın.

Workbooks(fileName).Close

9. Dir işlevi özel bir işlevdir. Diğer Excel dosyalarını almak için Dir işlevini argüman olmadan tekrar kullanabilirsiniz.

fileName = Dir()

Not: Daha fazla dosya adı eşleşmediğinde, Dir işlevi sıfır uzunluklu bir dize döndürür (""). Sonuç olarak, Excel VBA Do While döngüsünden ayrılacak.

10. Ekran güncellemesini tekrar açın (döngü dışında).

Application.ScreenUpdating = True

11. Programı test edin.

Sonuç:

Excel VBA'da bir dizindeki dosyalar

Ayrıca oku: