Bir VBA programı yazıyorsanız ve aynı görevi birden çok kez yürütmek istiyorsanız, bunu VBA for loop kullanarak yapabilirsiniz. VBA sıralı bir programlama dilidir. Okunacak kod satırı kalmayana kadar her kod satırı yukarıdan aşağıya yürütülür. Geri dönmek ve bir görevi gerçekleştirmek istiyorsanız, makro kodu kullanarak zorlamanız gerekir. Döngü ile sonuç alırsınız.
VBA'daki For Loop, en yaygın döngü türlerinden biridir. For döngüsünün iki formu vardır: Sonraki İçin ve Sonraki İçin Her Biri İçin. For döngüsü tipik olarak bir öğe veya sayı listesinde sırayla hareket etmek için kullanılır. For döngüsünü herhangi bir noktada sonlandırmak için çıkış ifadesini kullanabiliriz. For Loop, bitiş koşulunu karşılayana kadar döner ve döner. Son koşul karşılandığında, programlama akışı doğal yönünde aşağı doğru devam edecektir.
For… Next döngüsü aşağıdaki sözdizimine sahiptir: For counter = start_counter To end_counter 'Burada bir şey yapın (kodunuz) Sonraki sayaç
Aslında değişken kullanan bir döngü yaratıyoruz tezgah döngünün 'zaman tutucusu' olarak. Ona eşit bir değere ayarladık start_counter döngünün başında ve ardından bitiş koşulunu karşılayana kadar her döngüde 1 artırın. Döngü, değerin değerine kadar yürütülür. tezgah eşit olur end_counter. Döngü, yukarıdaki değerlerin her ikisi de eşleştiğinde son kez yürütülür ve ardından döngü durur.
Yukarıdakilerin tümü bazı insanlar için kafa karıştırıcı olabilir, bu yüzden birkaç örnekle Excel'de For Loop'u öğrenmeye başlayalım.
- Yeni bir excel çalışma kitabı oluşturun ve ardından .xlsm uzantısıyla kaydedin
- Visual Basic düzenleyici ekranını başlatmak için ALT + F11 tuşlarını kullanın.
- Yeni Modül Ekle
- Aşağıdaki kodu VB standart modülüne kopyalayın
Döngü 1 (Sayıyı msgbox ile görüntüleme)
Sub Loop1() Dim StartNumber As Integer Dim EndNumber As Integer EndNumber = 5 StartNumber = 1 için EndNumber MsgBox StartNumber & " is " & "StartNumber" Sonraki StartNumber End Sub
Kod Açıklaması:
- VBA kodu, StartNumber'a değer atamanızı gerektirir; burada EndNumber, döngünüz için başlangıç noktası olarak tamsayı olarak bildirilen değişkenlerdir.
- Bu değerler herhangi bir sayı olabilir ve EndNumber'ı 5 olarak aldık.
- StartNumber 1'de başlatıldı
- StartNumber = 1 To EndNumber için kodun 1'den (StartNumber) 5'e (EndNumber) başlayacağı anlamına gelir
- MsgBox StartNumber & " is " & "Your StartNumber" aşağıdaki mesaj kutusunu gösterecek
Loop2 (Dolgu Değerleri)
Sub Loop2() 'A1:A56 hücrelerini döngü yaparak X değerleriyle doldurur' --- Yorum 'X'in değerini her döngüde 1 artır' --- Yorum Dim X As Integer For X = 1 ila 56 Range("A " & X).Value = X Sonraki X End Sub
Kod Açıklaması:
- X'i tamsayı olarak atadık
- X = 1 ila 56 için; bu 1 ile başlayacak ve her seferinde 1'lik artışlarla 56'ya kadar devam edecek
- Aralık("A" & X).Değer = X; bu satır X'in değerini depolayacak ve A1 ile A56 aralığına geçecektir.
Loop3 (Hücreleri arka plan rengiyle doldurun)
Sub Loop3() ' B1:B56 hücrelerini 56 arka plan rengiyle doldurur' --- Yorum Dim X As Integer X = 1 - 56 Range("B" & X). Selection With Selection.Interior .ColorIndex = X .Pattern = xlSolid End with Next X End Sub
Kod Açıklaması:
- X'i tamsayı olarak atadık
- X = 1 ila 56 için 1 ile başlayacak ve her seferinde 1'lik artışlarla 56'ya kadar devam edecek
- Aralık("B" & X).Seçin; bu satır X'in değerini saklayacak ve B1 hücresini B56'ya kadar seçecektir.
- Sonraki 4 satır, yani Selection.Interior ile iç renk indeksini seçecek ve bu renk indeksinin X değerini, 1 siyah renge ait olacak şekilde alacaktır; 2 beyaz renge aittir; 3 kırmızı ve benzeri için
Döngü 4 (2'lik artışla Değerleri Doldur)
Varsayılan olarak, Adım değeri ileri 1'dir, ancak 1'den fazla bir sayıya ayarlanabilir.
Sub Loop4() ' C1:C50'den her ikinci hücreyi X' değerleriyle doldurur --- Yorum Dim X As Integer X = 1 - 50 Step 2 Range("C" & X).Value = X Sonraki X End Sub
Kod Açıklaması:
- X'i tamsayı olarak atadık
- X = 1 ila 50 Adım 2 için; bu, her seferinde 2'lik bir artışla 50'ye kadar X'te 1 ile başlayacak
- Aralık("C" & X).Değer = X; bu satır X'in değerini depolayacak ve C1 ila C50 aralığına geçecektir.
Döngü 5 (StEP Talimatı ile Ters Döngü için VBA)
For döngüsündeki sayacın yalnızca düşük değerden yüksek değerlere hareket etmesi gerekli değildir; bunun yerine, For döngüsü geriye doğru çalışabilir, yani yüksekten düşüğe değerler.
Adım değeri varsayılan olarak ileri 1 olsa da, ters sırada bir sayıya ayarlanabilir.
Sub Loop5() ' D1:D50'deki hücreleri X' değerleriyle doldurur --- Yorum ' Bu durumda X 1 azalır' --- Yorum Dim X As Integer, Row As Integer Satır = 1 X = 50 ila 0 için Adım -1 Aralık("D" & Satır).Değer = X Satır = Satır + 1 Sonraki X End Sub
Kod Açıklaması:
- X & Row'u tamsayı olarak atadık
- Satır 1 değerini içeriyor
- X = 50 ila 0 için Adım -1; bu, X'te 0'a kadar 1'er azalma ile 50'den başlayacak
- Aralık("D" &Satır).Değer = X; bu satır X'in değerini saklayacak ve D1 ila D50 aralığına geçecektir.
Döngü 6 (Terste her ikinci hücreyi STEP-2 ile doldurur)
Yukarıdaki For döngüsü örneğinde, For döngüsünün ileri mi yoksa geri yönde mi çalıştığını görmek için Adım ve düzeni kullanabiliriz.
Sub Loop6() ' E1:E100'deki her ikinci hücreyi X değerleriyle doldurur' --- Yorum ' Bu durumda X 2 azalır' --- Yorum Dim X Tamsayı, Satır As Tamsayı Satır = 1 X = 100 için 0'a Adım -2 Aralık("E" & Satır).Value = X Satır = Satır + 2 Sonraki X End Sub
Kod Açıklaması:
- X & Row'u tamsayı olarak atadık
- Satır 1 değerini içeriyor
- X = 100 ila 0 için Adım -2; bu, X'te 0'a kadar 2'şer azalma ile 100'den başlayacak
- Aralık("E" &Satır).Değer = X; bu satır X'in değerini saklayacak ve E1 ila E100 aralığına geçecektir.
Döngü 7 (IF koşuluyla Döngü için: Belirli hücreden başlayarak hücreleri doldurur)
Bu, X IF koşulunu karşılayana kadar F11 hücresindeki hücreleri 11 değeriyle dolduracaktır.
Sub Loop7() ' F11:F100 hücrelerini X değerleriyle doldurmaya başlar' --- Comment ' Bu, 50'den sonra döngüden çıkacaktır --- Comment Dim X As Integer For X = 11 To 100 Range("F" & X).Value = X X = 50 ise MsgBox ("Bye Bye") Exit For End If Next X End Sub
Kod Açıklaması:
- X'i tamsayı olarak atadık
- X = 11 ila 100 için; koşul karşılanana kadar X'te 1 artışla 11'den başlayacak
- Aralık("F" &X).Değer = X; bu satır X'in değerini saklayacak ve koşul sağlanana kadar F11 aralığına geçecektir.
- F50 hücresine 50 değerini girdikten sonra aşağıdaki mesaj kutusu görüntülenecektir.
Çözüm: Yukarıdaki 7 örnekle For döngüsünü normal veya herhangi bir otomasyon bölümümüzde uygulayabiliriz.
Bloglarımızı 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 iyileştirebileceğimizi, tamamlayabileceğimizi veya yenileyebileceğimizi ve sizin için daha iyi hale getirebileceğimizi bize bildirin. Bize e-posta sitesinde yazın