VBA Zamanlayıcı - Excel VBA Zamanlayıcı İşlevini kullanma örnekleri

Excel VBA TIMER İşlevi

VBA Zamanlayıcısı , bize saniyelerin kesirli değerini vermek için kullanılan dahili bir işlevdir, bazen çalışan herhangi bir kod kümesini duraklatmak veya kullanıcı tarafından sağlanan süreye göre bunları sürdürmek için kullanılan çok kullanışlı bir işlevdir, zamanlayıcı basitçe VBA'da zaman girişi ile ifade olarak kullanılır.

Basit bir ifadeyle, ZAMANLAYICI, geçerli günün gece yarısından sonra geçen toplam saniye sayısını verir. Kodun birinci satırından itibaren, alt prosedürde belirtilen işlemi tamamlamak için kodumuz tarafından harcanan zamanı gerçekten izleyebiliriz.

Bazen bir kod yazdığınızda ve kod süresini test etmek istediğinizde, yani kodunuzun alt prosedürü tamamlamak için harcadığı toplam süre nedir? Kodunuzun aldığı gerçek süreyi test ederek, modülünüzden istenmeyen veya uzun kodları silerek kodunuzu verimli hale getirebilir ve zaman alıcı süreci ortadan kaldırabilirsiniz.

VBA'da TIMER İşlevi nasıl kullanılır?

ZAMANLAYICI işlevinin döndüğünü söylediğim gibi, geçerli tarihin gece yarısından sonra geçen toplam saniye. Bu makaleyi yazarken Hindistan'da saat 13:50:45.

Bir makro adı oluşturdum ve VBA mesaj kutusuna TIMER değerini atadım.

Kod:

Alt Zamanlayıcı_Örnek1 () Mesaj Kutusu Zamanlayıcısı Son Alt

Bu kodu çalıştırdığımda sonucu 50480.08 olarak aldım.

Bu, bugünün gece yarısından yani 12:00:00 AM'den geçen toplam saniyedir.

Yani gece yarısından 12'den şimdiki zamana 14:01:20, toplam 14 saat 1 dakika, 20 saniye geçti. Saniyeler içinde TIMER fonksiyonumuz tarafından verilen 50480.08'e eşittir.

Örnekler

Örnek 1 - Kodunuzun Harcadığı Toplam Süreyi Hesaplayın

Şimdi, prosedürü yürütmek için VBA'nın harcadığı zamanı test etmek için bazı basit kodlamalar yapacağız. Aşağıdaki resimde gösterildiği gibi bazı kodlar yazdım.

Kod:

Sub Do_Until_Example1 () Dim ST As Single ST = Timer Dim x As Long x = 1 Do Kadar x = 100000 Hücre (x, 1) .Değer = xx = x + 1 Döngü Mesaj Kutusu Zamanlayıcısı - ST Son Alt

Bu kodu şimdi çalıştırırsam, bana VBA'nın yürütmek için harcadığı toplam süreyi gösterecektir.

3.058594 yazıyor. Bu fonksiyon tarafından verilen sonuç saniye cinsindendir, yani bu kodun aldığı toplam süre 3.058 saniyedir.

Kodu kullanmanız için aşağıdaki kodu sizin için yazdım.

Kod:

Sub Timer_Example1 () Dim BaşlangıçTime As Single StartTime = Timer 'Kodunuzu buraya girin' Kodunuzu buraya girin 'Kodunuzu buraya girin' Kodunuzu buraya girin MsgBox Zamanlayıcı - Başlangıç ​​Zamanı Bitiş Sub

Yukarıdakini kullanın ve kodunuzu StartTime = Timer kodundan sonra yazın , ancak MsgBox Timer - StartTime kodundan önce , yani yeşil alana kodunuzu girmeniz gerekir.

Açıklama: İlk olarak, StartTime = Timer değişkeni , kodun çalıştırıldığı anda gece yarısından kod çalıştırma süresine kadar geçen süreye eşit olduğu anlamına gelir.

Zamanlayıcı - Başlangıç ​​Zamanı: Kod çalıştırıldıktan sonra, değişken başlama zamanı ile kodun başlangıcında kaydedilen geçen süre eksi zamanın ne olduğu anlamına gelir .

Bu, başlangıç ​​ve bitiş zamanı arasındaki farkı verecek ve sonucu döndürecektir.

Örnek 2 - Sonucu Doğru Saat Formatında Göster

Gördüğümüz gibi, fonksiyon tarafından verilen sonuç saniye cinsindendir ancak doğru bir formatta değildir. Bununla birlikte, FORMAT işlevini kullanarak nihai sonuca bir VBA saat formatı uygulayabiliriz.

Sonucu doğru saat biçiminde, yani "ss: dd: ss" biçiminde görmek için aşağıdaki kodu kullanın.

BİÇİMLENDİR işlevini burada kullandım. Sonuç (Zamanlayıcı - başlama saati) ile verilir. Zaman biçimi kurallarına göre saniyeye dönüştürmek için 86400 sayısına böldüm, sonra saat biçimini bir saat, dakika ve saniye biçiminde uyguladım.

Şimdi, kodu çalıştırırsam, böyle bir sonuç verecektir.

Yani, kodun aldığı toplam süre 3 saniyedir.

Bu kodun güzelliği, 60 saniyeyi geçtiği andır; sonucu dakikalar içinde gösterecektir. Kodumun çalışmasını bir dakikalığına durdurdum (Ctrl + Break kullanarak) ve sonucu görüyorum.

Yani bu kodla alınan toplam süre şimdi 1 dakika 2 saniyedir.

Örnek 3 - Zamanlayıcıya Alternatif Kod

NOW () işlevini kullanarak TIMER'a bir alternatif vardır . Alternatif kod aşağıdadır.

Hatırlanacak şeyler

  • ZAMANLAYICI işlevi, değeri günün sonunda, yani 11:59:59 PM'de yeniden başlatır.
  • NOW işlevi, geçerli tarihi ve geçerli saati döndürür.
  • TIMER, geçerli tarihten gece yarısına kadar geçen toplam saniyeyi gösterir.

Ilginç makaleler...