Vba'da do while döngüsü nasıl kullanılır?

VBA Do while, bir koşul belirtmeniz gereken ve döngünün yürütülmesi için bu koşulun doğru kalması gereken bir döngüdür. Basit bir ifadeyle, öncelikle belirttiğiniz koşulun doğru olup olmadığını kontrol eder ve eğer koşul doğruysa döngüyü çalıştırır, aksi halde hiçbir şey yapmaz.

Her yinelemede koşulu test eder ve ancak bundan sonra talimatı yürütür. Excel’e çalışma sayfaları eklemek istediğinizi ancak tam çalışma sayfası sayısının 12 veya daha az olduğunu düşünün. Bu durumda bu kodu yazmak için do-while döngüsünü kullanabilirsiniz.

Sözdizimi

Sonraki her döngü için VBA sözdizimini burada bulabilirsiniz.

 Do While Condition [statements] Loop
vba-do-while-döngüsü-koşul-ifadesi
  1. Koşul: Belirttiğiniz koşuldur ve döngünün yürütülebilmesi için bu koşulun doğru olması gerekir.
  2. Açıklama : Do While döngüsünün koşulu yürütmesini istediğiniz kod satırları doğru.
  3. Döngü : Bu, döngü yinelemesinin bitiş ifadesidir ve VBA’ya koşulu tekrar test etmek için geri dönmesini söyler.

DO While döngüsünü anlamak için örnek

Do While Döngüsünü anlamak için toplam çalışma sayfası sayısı on ikiden az olduğunda çalışma kitabına çalışma sayfası ekleyen bir kod yazalım. VBA’ya kaç sayfa ekleyeceğinizi söylemenize gerek yoktur ve bu kodu her çalıştırdığınızda her zaman toplam 12 sayfanız olur.

Aşağıdaki adımları kullanın:

  1. Öncelikle klavyede “Do While” yazmanız gerekiyor.
    type-the-keyword-do-while
  2. Daha sonra, çalışma kitabındaki toplam çalışma sayfası sayısının on ikiden az olup olmadığını kontrol edebilecek bir koşul yazmanız gerekir.
  3. Bunu yapmak için, toplam çalışma sayfası sayısını sayan ve ardından bunu on iki sayısıyla karşılaştıran aşağıdaki kodu kullanmanız gerekir.
    condition-to-check-worksheets
  4. Daha sonra çalışma sayfası eklemek için kodu yazmanız gerekir. Bu kod belirttiğiniz koşul doğru olduğunda çalışacaktır.
    code-to-add-worksheet
  5. Ve sonunda kodu tamamlamak için “Döngü” anahtar kelimesini yazın.
    type-loop-to-end-the-code

İşte az önce yazdığınız kodun tamamı:

 Sub vba_do_while_loop() Do While ActiveWorkbook.Worksheets.Count < 12 Sheets.Add Loop End Sub

Şimdi bu kodun nasıl çalıştığını açıklayayım: Belirttiğiniz koşul, çalışma kitabındaki toplam çalışma sayfası sayısını kontrol eder ve ardından çalışma sayfası sayısını on ikiye göre kontrol eden bir küçüktür operatörüne sahip olursunuz.

Çalışma sayfası sayısı on ikiden az olduğunda döngü çalışmaya devam edecek ve yeni çalışma sayfaları eklemeye devam edecektir, ancak çalışma sayfası sayısı on ikiye ulaştığında döngü duracaktır.

Bu, basit bir ifadeyle, çalışma sayfası sayısı on ikiden az olduğu sürece döngünün çalışmaya devam edeceği anlamına gelir.

do-while döngüsü örneği

Olay şu ki, az önce yazdığınız kodla eklemek istediğiniz çalışma sayfası sayısını belirtmenize gerek yok, ancak bir sonraki döngüye giderseniz eklemek istediğiniz çalışma sayfası sayısı hesaplamasını belirtmeniz gerekiyor.

için bir döngü oluştur

Do Loop While, Do While Loop’un genişletilmiş bir versiyonudur çünkü aynı şekilde çalışır ancak durumu test ederken küçük bir fark vardır.

Do Loop’ta Belirttiğiniz koşulu test etmeden önce döngünün bir yinelemesini çalıştırırken, koşul doğruysa döngüye devam eder.

Diyelim ki bir şifreyi kontrol etmek için bir kod yazmak ve şifre yanlışken döngüye devam etmek istiyorsunuz (bunu örnekte görüyoruz).

Sözdizimi

İşte VBA Do Loop While’ın sözdizimi.

vba-do-loop-while için sözdizimi
  1. Yap: Bu, Do While döngüsünün başlangıç anahtar kelimesidir.
  2. Açıklama: Bu, döngüde çalıştırmak istediğiniz kod satırlarıdır.
  3. Loop While: Döngüyü devam ettirecek ve belirttiğiniz koşulu test edecek anahtar kelimedir.
  4. Koşul: Bu, döngü ikinci yinelemeye başlamadan ve döngüye devam etmeden önce test etmek istediğiniz koşuldur.

Do Loop While’ın söz diziminde görebileceğiniz gibi, önce deyimi bir kez çalıştıracak, ardından koşula giderek onu test edecek ve eğer bu koşul doğruysa döngüyü başlatıp koşul devam ettiği sürece devam edecek. doğru.

DO döngüsünü anlamak için örnek while

Do while döngüsünü anlamak için, bir giriş kutusu görüntüleyecek ve kullanıcıdan şifreyi girmesini isteyecek bir kod yazalım.

Bu giriş kutusu, beş denemeye kadar kullanıcı tarafından girilen şifrenin yanlış olduğunu açıkça göstermeye devam edecek ve bundan sonra giriş kutusu, işlem yapılmadan kaybolacaktır.

  1. İlk olarak, şifreyi saklamanız ve sayacı denemeniz için gereken iki değişkeni bildirin.
    declare-two-variables-you-need-for-storing
  2. Bundan sonra “Yap” anahtar kelimesini yazın. Burada sözdiziminde gördüğünüz gibi ilk önce koşulu tanımlamanıza gerek yoktur.
    type-the-do-keyword
  3. Daha sonra, kullanıcıdan şifreyi girmesini isteyen giriş kutusunu görüntülemek için bir kod satırı yazmanız gerekir.
    write-a-line-of-code
  4. Buradan beşe kadar sayabilecek bir sayaç ayarlamanız gerekir (her döngü yinelemesinde toplanır).
    define-a-counter
  5. Şimdi “Loop While” anahtar kelimesini yazın ve kullanıcı tarafından giriş kutusuna girilen değeri kontrol edebilecek ve sayaç değerini 5’ten küçükse test edebilecek iki koşulu ayarlayın.
    type-keyword-loop-while-and-define-two-condition
  6. Son olarak çalıştırmak istediğiniz kodu yazın. Burada, kullanıcı tarafından girilen şifrenin doğru olması durumunda bir mesaj kutusu görüntüleyecek olan IF ifadesini kullanıyorum.
    write-the-code-you-want-to-run
 Sub vba_do_loop_while() Dim varPassword As Variant, i As Double Do varPassword = InputBox _ ("Enter the password to start the procedure:", _ "Check Password 1.0") i = i + 1 Loop While varPassword <> "CorrectPassword" And i < 5 If varPassword = "CorrectPassword" Then MsgBox "Your Password is Correct" End If End Sub

Bu kodu size açıklayayım.

  • Bu kodun ilk kısmında kullanıcıya bir giriş kutusu gösterecek ve ondan şifre isteyecek do while döngüsüne sahipsiniz.
  • Şifre yanlışsa, kullanıcı doğru şifreyi girene kadar döngüyü çalıştırmaya devam edecektir .
  • Ancak döngünün yinelemelerini saymak için bir sayaç kullandığınızdan ve bu sayaç 5’e ulaştığında döngü duracaktır .

Yorum ekle

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir