VBA Bekleme İşlevi | Excel VBA Bekleme Yöntemi nasıl kullanılır?

Excel VBA Bekleme İşlevi

VBA Wait , kodun belirli bir süre boyunca yürütülmesini duraklatmak için kullanılan yerleşik bir işlevdir, bir uyku komutunda yaptığımıza ve application.wait yöntemini kullandığımız bir kodu duraklatmaya çok benzer.

Bazı kodlar, tamamlanacak diğer görevler nedeniyle bir sonraki kod satırına ilerlemeden önce bir süre gerektirir. Bu durumlarda, çalıştırılacak kodu durdurmalı ve bir süre duraklamalı ve ardından yürütmeye devam etmeliyiz. Çalıştırılacak kodu iki şekilde duraklatabiliriz, birincisi “Uyku” yöntemi ve ikincisi “Bekle” yöntemi. Önceki makalemizde, VBA kodunu duraklatmak için "VBA Uyku" yöntemini tartışmıştık.

Adından da anlaşılacağı üzere "Bekle", çalıştırılacak makro kodunu belirli bir zaman diliminde tutacaktır. Bu yöntemi kullanarak kodumuzun duraklaması gereken zamanı belirtmemiz gerekiyor, bundan sonra örnekler göreceğiz.

WAIT işlevinin sözdizimi aşağıdaki gibidir.

Kodumuzun ne kadar süreyle duraklaması gerektiğini belirtmemiz gerekiyor. Sonunda görebileceğiniz gibi Boolean yazıyor, bunun anlamı sonucu Boolean değerleri, yani DOĞRU veya YANLIŞ olarak döndürüyor.

Belirtilen zaman gelene kadar YANLIŞ diyor ve belirtilen zaman geldiğinde DOĞRU döndürüyor.

Bu, SLEEP işlevinden farklıdır çünkü WAIT, SLEEP'in bir Windows İşlevi olduğu yerleşik bir işlevdir. SLEEP fonksiyonuna erişmeden önce, modülün üst kısmında aşağıdaki kodu belirtmemiz gerekiyor. Ancak WAIT bunu gerektirmez.

Kod:

# Eğer VBA7 O zaman Kamu PtrSafe Alt Uyku Lib "kernel32" (ByVal dwMilliseconds As LongPtr) '64 Bit Sistemler İçin # Else Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)' 32 Bit Sistemler İçin End If 

Excel VBA Bekleme İşlevini kullanma örnekleri

Bu VBA Wait Excel Şablonunu buradan indirebilirsiniz - VBA Wait Excel Şablonu

Örnek 1

Gün ortasında 14: 30: 00'da çalıştığınızı ve kodunuzun saat 14:40:00 olana kadar duraklatılmasını istediğinizi varsayalım. Aşağıdaki kodu kullanabilirsiniz.

Kod:

 Sub Wait_Example1 () Application.Wait "14:40:00" End Sub 

Kod, işletim sisteminizde saat 14: 40: 00'a ulaşıncaya kadar excel'inizin çalışmasını durduracaktır. Böyle bir zaman sağlamak tehlikelidir çünkü her zaman 14:30: 00'dan itibaren çalışmayız, her zaman değişmeye devam eder.

Diyelim ki 2 dakika beklemek istediğiniz kodu çalıştırdığınızda, bunu kodunuzda nasıl ifade edersiniz?

Bu nedenle, mevcut zamandan belirtilen zamanı girmek için VBA NOW fonksiyonunu TIME VALUE fonksiyonu ile kullanabiliriz.

ŞİMDİ () işlevi, bilgisayar sisteminize göre geçerli tarih ve saati döndürür. ZAMAN DEĞERİ işlevi, 24 saat biçiminde 00:00:00 ile 23:59:59, yani 11:59:59 PM arasındaki zamanı temsil eder. Dize değerini bir zaman değerine dönüştürür.

Örneğin ŞİMDİ () + ZAMAN DEĞERİ (00:02:30) Geçerli Zaman + 2 dakika 30 saniye anlamına gelir.

Halihazırdaki zaman 14:25:30 ise 14:28:00 olur.

Geçerli zamandan sonraki 10 dakikaya kadar kodunuzun yürütülmesini durdurmak veya duraklatmak için aşağıdaki kodu kullanabilirsiniz.

Kod:

 Sub Wait_Example2 () Application.Wait (Şimdi () + TimeValue ("00:10:00")) Sub Wait 

Doğru duraklatma için NOW () işlevini kullanmak önemlidir, aksi takdirde, excel çalışma kitabınızın gece yarısına kadar duraklatma ihtimali vardır. Ancak herhangi bir noktada Esc tuşuna veya Break Tuşuna basarak duraklatma yönteminden çıkabiliyoruz .

Örnek 2

Döngü Her Çalıştırıldığında 10 Saniye Bekleyin

Bekleme yöntemi döngülerde iyi kullanılır. Döngü her çalıştığında 10 saniye beklemenizi gerektirebilecek durumlar vardır. Örneğin, aşağıdaki verilere bakın.

Kar = (Satış - Maliyet) hesaplamak için bir döngü oluşturmak istiyorsunuz ve her döngüden sonra sonucun doğru olup olmadığını kontrol etmek için 10 saniye beklemek istiyorsunuz. Aşağıdaki kod bunu yapacak.

Kod:

 Alt Wait_Example3 () Dim k As Integer For k = 2 ila 9 Hücre (k, 4) .Değer = Hücreler (k, 2) - Hücreler (k, 3) Uygulama.Bekle (Şimdi () + ZamanDeğeri ("00:00 : 10 ")) Sonraki k Son Abonelik 

Bu kod, kar sütununu satır satır hesaplayacaktır. İlk satırın tamamlanmasından sonra bir sonraki satırı hesaplaması için 10 saniye bekleyecektir.

VBA Uykusu ve VBA Beklemesi

VBA UYKUVBA BEKLEME
Yerleşik bir VBA işlevi değildir, bu işleve erişmek için özel bir koda ihtiyaç duyar.VBA yerleşik bir işlevidir, bu işleve erişmek için herhangi bir özel kod gerektirmez.
Uyku, zaman çerçevesi olarak milisaniye gerektirir.Bekleme, düzenli bir zaman dilimi gerektirir.
Kodu milisaniye içinde geciktirebilirizSadece saniyeler içinde erteleyebiliriz.