Her Excel Sayfasını Ayrı Dosyalara Böl (Adım Adım)

Videoyu İzle - Her Excel Sayfası Nasıl Ayrı Dosyalara Bölünür

Çok sayıda çalışma sayfası içeren bir Excel çalışma kitabınız varsa, bu sayfaların her birini ayrı Excel dosyalarına bölmenin ve ayrı ayrı kaydetmenin kolay bir yolu yoktur.

Bu, farklı aylar veya bölgeler veya ürünler/müşteriler için sayfalar hazırlarken ve her sayfa için hızlı bir şekilde ayrı bir çalışma kitabı (Excel dosyası veya PDF olarak) almak istediğinizde gerekli olabilir.

Sayfaları ayrı çalışma kitaplarına ayırmanın ve ardından kaydetmenin manuel bir yolu olsa da, verimsizdir ve hataya açıktır.

Bu öğreticide, tüm çalışma sayfalarını hızlı bir şekilde (birkaç saniye içinde) kendi ayrı dosyalarına bölmek ve ardından bunları belirtilen herhangi bir klasöre kaydetmek için kullanabileceğiniz basit bir VBA kodu vereceğim.

Her Çalışma Sayfasını Ayrı Bir Excel Dosyasına Bölün

Her ay için bir çalışma sayfanızın olduğu aşağıda gösterildiği gibi bir çalışma kitabınız olduğunu varsayalım.

Bu sayfaları ayrı bir Excel dosyasına bölmek için aşağıdaki VBA kodunu kullanabilirsiniz:

'Kod trumpexcel.com Sub SplitEachWorksheet() adresinden Sumit Bansal tarafından oluşturuldu. Dosya adı:=FPath & "\" & ws.Name & ".xlsx" Application.ActiveWorkbook.Close False Next Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub

Yukarıdaki VBA kodunu kullanmadan önce emin olmanız gereken birkaç şey var:

  1. Ortaya çıkan tüm dosyaları almak istediğiniz bir klasör oluşturun.
  2. Ana Excel dosyasını (ayrı dosyalar olarak istediğiniz tüm çalışma sayfalarını içeren) bu klasöre kaydedin.

Bunu yaptıktan sonra, yukarıdaki VBA kodunu dosyaya koyabilir ve kodu çalıştırabilirsiniz.

Yukarıdaki kod, dosyanın (kodun çalıştırıldığı) yolunu kullanarak klasörün konumunu alacak şekilde yazılmıştır. Bu yüzden önce dosyayı klasöre kaydetmeniz ve ardından bu kodu kullanmanız önemlidir.

VBA kodu nasıl çalışır? - Yukarıdaki kod, her çalışma sayfasından geçen, bir Excel çalışma kitabında çalışma sayfasının bir kopyasını oluşturan ve ardından bu Excel çalışma kitabını belirtilen klasöre kaydeden (tüm çarşaflar).

Aşağıda bu VBA kodunu Excel çalışma kitabına yerleştirme adımları verilmiştir (bunlar, bu eğitimde gösterilen diğer tüm yöntemler için aynı olacaktır):

Bu kodu nereye koyacağız?

Aşağıda, kodu çalıştırılabileceği Visual Basic Düzenleyicisi'ne yerleştirme adımları verilmiştir:

  • Geliştirici sekmesine tıklayın.
  • Kod grubunda Visual Basic seçeneğine tıklayın. Bu, VB Editörünü açacaktır. [Klavye kısayolunu da kullanabilirsiniz - ALT + F11]
  • VB Editöründe, üzerinde çalıştığınız çalışma kitabının herhangi bir nesnesine sağ tıklayın.
  • İmleci Ekle seçeneğinin üzerine getirin
  • Modül'e tıklayın. Bu yeni bir modül ekleyecektir
  • Modül nesnesine çift tıklayın. bu modül için kod penceresini açacaktır
  • Yukarıda verilen VBA kodunu kopyalayın ve modül kodu penceresine yapıştırın.
  • VBA makro kodunu çalıştırmak için koddaki herhangi bir satırı seçin ve araç çubuğundaki yeşil oynat düğmesine tıklayın.

Yukarıdaki adımlar, çalışma sayfalarını anında ayrı Excel dosyalarına böler ve bunları kaydeder. Daha az sayıda çalışma sayfanız varsa, yalnızca bir saniye sürer. Çok varsa, biraz zaman alabilir.

Kaydedilen her dosyanın adı, ana dosyadaki sayfa adıyla aynıdır.

Excel çalışma kitabına bir VBA kodu yerleştirdiğiniz için, bunu bir .XLSM biçiminde (makro etkin biçim olan) kaydetmeniz gerekir. Bu, makronun kaydedilmesini ve bu dosyayı bir sonraki açtığınızda çalışmasını sağlayacaktır.

Hatları kullandığımı unutmayın. Application.ScreenUpdating = Yanlış ve Application.DisplayAlerts = Yanlış her şeyin arka uçta gerçekleşmesi ve ekranınızda olan şeyleri görmemesi için kodda. Kod çalışıp sayfaları bölüp bunları kaydettikten sonra, bunları tekrar DOĞRU'ya çeviriyoruz.

En iyi uygulama olarak, ana dosyanın (bölmek istediğiniz sayfaları içeren) bir yedek kopyasını oluşturmanız önerilir. Bu, bir şeyler ters giderse veya Excel yavaşlamaya veya çökmeye karar verirse verilerinizi kaybetmemenizi sağlar.

Her Çalışma Sayfasını Böl ve Ayrı PDF Olarak Kaydet

Çalışma sayfalarını bölmek ve bunları Excel dosyaları yerine PDF dosyası olarak kaydetmek isterseniz aşağıdaki kodu kullanabilirsiniz:

'Kod trumpexcel.com Sub SplitEachWorksheet() adresinden Sumit Bansal tarafından oluşturuldu. Type:=xlTypePDF, Filename:=FPath & "\" & ws.Name & ".xlsx" Application.ActiveWorkbook.Close False Next Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub

Bu kodu kullanmadan önce emin olmanız gerekenler:

  1. Ortaya çıkan tüm dosyaları almak istediğiniz bir klasör oluşturun.
  2. Ana Excel dosyasını (ayrı dosyalar olarak istediğiniz tüm çalışma sayfalarını içeren) bu klasöre kaydedin.

Yukarıdaki kod, Excel dosyasındaki her sayfayı böler ve ana Excel dosyasını kaydettiğiniz klasöre bir PDF olarak kaydeder.

Yalnızca Bir Kelime/Kelime İçeren Çalışma Sayfalarını Ayrı Excel Dosyalarına Bölün

Bir çalışma kitabında çok sayıda sayfanız varsa ve yalnızca içinde belirli bir metin bulunan sayfaları bölmek istiyorsanız, bunu da yapabilirsiniz.

Örneğin, birden fazla yıla ait verileriniz olan bir Excel dosyanız olduğunu ve dosyadaki her sayfanın önek olarak yıl numarasını içerdiğini varsayalım. Aşağıda gösterildiği gibi bir şey:

Şimdi 2021-2022 için tüm sayfaları bölmek ve bunları ayrı Excel dosyaları olarak kaydetmek istediğinizi varsayalım. Bunu yapmak için, her bir çalışma sayfasının adını bir şekilde kontrol etmeniz ve yalnızca 2021-2022 numaralı sayfaların bölünmesi ve kaydedilmesi ve geri kalanına dokunulmaması gerekir.

Bu, aşağıdaki VBA makro kodu kullanılarak yapılabilir:

'Kod trumpexcel.com Sub SplitEachWorksheet()'ten Sumit Bansal tarafından oluşturuldu. Sayfalar If InStr(1, ws.Name, TexttoFind, vbBinaryCompare) 0 Sonra ws.Copy Application.ActiveWorkbook.SaveAs Dosya Adı:=FPath & "\" & ws.Name & ".xlsx" Application.ActiveWorkbook.Close False End If Next Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub

Yukarıdaki kodda, başlangıçta “2020”ye atanmış bir TexttoFind değişkeni kullandım.

VBA kodu daha sonra her çalışma sayfasından geçmek için VBA'daki Sonraki İçin döngüsünü kullanır ve ardından her çalışma sayfasının INSTR işlevinin adını kontrol eder. Bu işlev, çalışma sayfası adının içinde word2021-2022 olup olmadığını kontrol eder. Olursa, bu metni bulduğu yerde bir konum numarası döndürür (bu durumda 2021-2022).

Aradığımız metni bulamazsa 0 döndürür.

Bu, IF Sonra koşuluyla kullanılır. Bu nedenle, bir sayfa adında dize2021-2022 metni varsa, bölünecek ve ayrı bir dosya olarak kaydedilecektir. Ve eğer bu metin dizgisine sahip değilse, EĞER koşulu karşılanmayacak ve hiçbir şey olmayacaktı.

Arkadaşlarınızla sayfasını paylaşan sitenin gelişimine yardımcı olacak

wave wave wave wave wave