VBA kullanarak Excel'de yinelenen görevleri otomatikleştirmek ister misiniz? Elektronik tablolarınızdaki verileri verimli bir şekilde işlemek için Her biri için döngüsünü nasıl kullanacağınızı öğrenin.

Döngüler ve VBA bir arada ve bunun da iyi bir nedeni var. Çalışma kitapları, çalışma sayfaları ve aralıklar gibi Microsoft Office nesneleri ile uğraşırken, döngüler her biri arasında görece kolaylıkla geçiş yapmanıza yardımcı olabilir.

Aşağı yukarı tüm VBA döngüleri nesnelerle iyi çalışsa da, "her biri için" döngüsü, nesne koleksiyonlarıyla çalışmak için en iyi seçeneklerden biridir. Excel VBA'da yeniyseniz ve her döngü için ustalaşmak istiyorsanız, bu örneklerden bazılarını hızlı bir şekilde öğrenebilirsiniz. İşte bu mükemmel döngü hakkında bilmeniz gereken her şey.

Her Döngünün Söz Dizimi İçin

Her döngü için sözdizimi, Excel VBA'daki normal for döngüsüne oldukça benzer. İşte sözdizimi:

object_collection içindeki her değişken_adı için

[ifade]

[ifade]

[ifade]

sonraki değişken_adı

Döngü, "her biri için" anahtar sözcüğüyle başlar; herhangi bir değişken adını ve ardından nesne koleksiyonunu kullanabilirsiniz. for her döngüsündeki nesne hücreler, aralıklar, sayfalar ve hatta çalışma kitapları olabilir. Bu döngünün güzelliği böyledir; size farklı Excel koleksiyonlarıyla çalışma esnekliği sağlar.

instagram viewer

Döngü, her koleksiyon değeri arasında geçiş yapar ve referansı tanımlanan değişken adında saklar. Yürütmeden sonra VBA, döngü içinde saklanan ifadeleri yürütür ve koleksiyondaki bir sonraki nesneye ( Sonraki anahtar kelime burada yardımcı olur). Basit bir örnekle kod yapısını anlayalım.

Excel VBA'da Her Döngü İçin Nasıl Kullanılır

A1 ile A10 arasındaki hücrelere bir sayı yazdırmak istediğinizi varsayalım. En iyi yaklaşım, for her döngüyü range işleviyle birlikte kullanmak ve kodun gereğini yapmasına izin vermektir. Bu basit görevi şu şekilde yapabilirsiniz:

  1. tuşuna basarak VBA kod düzenleyicisini açın. Alternatif + F11.
  2. tıklayarak bir modül ekleyin. Modül içindeki seçenek Sokmak sekme.
  3. Kod düzenleyici modül penceresindeki sub() komutunu kullanarak bir alt rutin oluşturun. Alt rutine anlamlı bir ad atadığınızdan emin olun. Bu örnek için, adı kullanabilirsiniz. for_each_loop.

Artık temel bilgiler ortadan kalktığına göre, kodu yazmaya başlamanın zamanı geldi. Alt rutinde aşağıdaki komutları yazın:

Hücreyi karart gibi menzil

her hücre için içinde Çarşaflar("Sayfa1").Menzil("A1:A10")

hücre.değer = 10

sonraki hücre

Kod yürütüldüğünde, C değişken A1'in değerini saklayacaktır. Ardından, döngü içindeki ifadeye geçerken komutu değerlendirir ve tanımlanan hücreye, yani A1 hücresine 10 değerini girer.

Son olarak, Sonraki anahtar kelimeye geçerken bir sonraki değere, yani A2 hücresine geçer. Döngü, A10 hücresine ulaşana kadar çalışır. Bu son çıktı:

Döngüyü Nesnelerle Kullanma: Hücreler, Sayfalar ve Çalışma Kitapları

Excel'de düzenli olarak çalıştığınız üç ana nesne türü vardır. Bunlar hücreler, sayfalar ve çalışma kitaplarıdır. Döngüyü üç nesne türüyle de şu şekilde kullanabilirsiniz.

Hücreler ve Döngülerle Birlikte Çalışmak

Sayfa1'deki bir hücre aralığına bir değer ve bazı biçimlendirme koşulları eklemek istediğinizi varsayalım. İlk adım olarak, döngü içindeki koşulları ve ardından biçimlendirme komutlarını tanımlamanız gerekir.

Bir alt rutinde aşağıdaki kodu yazın.

Alt for_each_loop()

loş c Gibi Menzil

Sayfalardaki Her c için("Sayfa1").Menzil("A1:A10")

İle C

.Değer = 10

.Yazı tipi. Renk = vbKırmızı

.Yazı tipi. kalın = Doğru

.Yazı tipi. Üstü çizili = Doğru

Sonİle

sonraki c

Son Alt

bu ile işlev, belirli bir nesneyle birden çok işlev gerçekleştirirken kullanışlıdır. c değişkeni ile bir dizi görevi gerçekleştirmek istediğiniz için, hepsini bir with..end with işlevi kullanarak birleştirebilirsiniz.

Döngü, c'nin değerini her hücre değeriyle eşitler ve değeri 10 olarak girer. Ek olarak, hücrenin rengini kırmızıya çevirir, değeri kalınlaştırır ve üstünü çizer. Tüm adımları tamamladıktan sonra, aralıktaki bir sonraki tanımlı değere geçer.

Sayfaları Kontrol Etmek İçin Döngüyü Kullanma

Yukarıdaki örneğe benzer şekilde, sayfaları kontrol etmek için for her döngüyü kullanabilirsiniz. Sayfa1'in adını VBA kullanarak Sayfa3 olarak değiştirmeye ne dersiniz?

Excel'de var olan bir çalışma sayfasını VBA kullanarak yeniden adlandırmak için aşağıdaki kodu kullanabilirsiniz:

Alt for_each_loop_sheets()

İçinHer birişştİçindeBuÇalışma Kitabı.Çarşaflar

Şşt. isim = "Sayfa1" Daha sonra

şşt. isim = "Sayfa3"

SonEğer

sonraki sht

Son Alt

Kod, çalışma kitabındaki her sayfada dolaşır ve her sayfanın adını kontrol eder. Sheet1 adıyla karşılaşırsa, Sheet3 olarak değiştirir. Varsa, çalışma kitabı içindeki kalan sayfalarda ilerler. Kod yürütme son sayfaya ulaştığında, döngüden ve alt rutinden çıkar.

Diğer bazı yaygın kullanımlar arasında şunları yapabilirsiniz: VBA kullanarak birden çok çalışma sayfasını birleştirme ve döngüleri kullanarak içeriği tek bir sayfada güncelleyin.

Döngü ile Çalışma Kitapları Arasında Geçiş Yapın

Son olarak, farklı çalışma kitapları arasında geçiş yapmak ve belirli görevleri gerçekleştirmek için her döngü için kullanabilirsiniz. Bu fonksiyonu bir örnekle gösterelim.

Üç yeni çalışma kitabı eklemek ve tüm açık olanları birlikte kapatmak için VBA komutlarını kullanabilirsiniz. Bunu şu şekilde yapabilirsiniz:

Alt loop_wrkbook()

Kitap defterini karart gibi çalışma kitabı

çalışma kitapları.Eklemek

çalışma kitapları.Eklemek

çalışma kitapları.Eklemek

Çalışma Kitaplarında Her çalışma kitabı için

defter.Kapalı

sonraki çalışma kitabı

Son Alt

Yukarıdaki kod, makro çalışma kitabınızı da kapatacaktır; bu kodu çalıştırmadan önce kodlarınızı kaydettiğinizden emin olun.

Döngülerin birden çok kullanımı olduğundan, şunları da yapabilirsiniz: birden fazla çalışma kitabındaki verileri tek bir çalışma kitabında birleştirin.

Döngü ile İç İçe IF İfadesi Kullanma

Yukarıdaki örnekte olduğu gibi, belirli koşulları kontrol etmek için döngü içinde bir IF ifadesi kullanabilirsiniz. Hücrenin arka plan rengini hücrenin değerlerine göre değiştirelim.

A1:A20 hücrelerinde birkaç rasgele sayı vardır. Aralıktaki verilen her hücrede dolaşmak için bir döngü yazabilirsiniz; hücrenin değeri 10'dan küçükse, hücre rengi kırmızıya dönmelidir. Hücre değeri 10'u aşarsa yeşile dönmelidir. Bu amaçla aşağıdaki kodu kullanın:

Alt döngü_w_if()

loş c Gibi Menzil

Sayfalardaki Her c için("Sayfa4").Menzil("A1:A20")

EğerC.Değer < 10 Daha sonra

C. İç mekan. Renk Endeksi = 3

Başka: C. İç mekan. renk indeksi = 4

SonEğer

sonraki c

Son Alt

Bu, çıktının nasıl göründüğü:

Excel VBA'da Döngüleri Kullanma

Excel VBA, her döngü için yalnızca sınırlı değildir. Farklı işlevleri kolaylıkla gerçekleştirmenize izin veren çeşitli yardımcı döngüler vardır. For döngüsü gibi VBA döngüleri, do while ve do till döngüleri hayatınızı kolaylaştırmak için devreye girerken, sıradan, manuel görevlere veda edin.