Vba elektronik tablo işlevi nasıl kullanılır?

Önemli notlar

  • Bir makroda kullanılacak çalışma sayfası işlevlerine erişmek için WorksheetFunction özelliğini kullanabilirsiniz.

Makro yazarken VBA’da çalışma sayfası işlevi nasıl kullanılır?

VBA’da bir çalışma sayfası işlevini kullanmak için aşağıdaki adımları kullanın.

  • Öncelikle fonksiyonun döndürdüğü değerleri eklemek istediğiniz hücreyi belirtin.
    worksheet-function-in-vba
  • Bundan sonra eşittir işareti (=) kullanın ve Application.WorksheetFunction yazın (zaten Excel uygulamasında yaptığınız gibi, yalnızca WorksheetFunction’ı kullanabilirsiniz).
    use-an-equal-sign
  • Daha sonra bir nokta (.) girmeniz gerekir ve bunu yaptığınız anda elektronik tablodaki işlevlerin bir listesini alırsınız.
    you-need-to-enter-a-dot
  • Buradan A1 ve B1 hücrelerindeki metni birleştirmek için TextJoin fonksiyonunu kullanalım. Aynen böyle, elektronik tablodaki bir işlevi kullanırsınız; başlangıç parantezlerini girdiğinizde size hücrede belirtmeniz gereken argümanları gösterir.
    use-the-textjoin-function
  • Yukarıdaki ekran görüntüsünde görebileceğiniz gibi, size belirtmeniz gereken argümanı gösterir ancak argümanların adını göstermez. Bu yüzden onları kullanmadan önce argümanları bilmeniz gerekir. TextJoin’de kullanmanız gereken argümanlar şunlardır.
    arguement-before-using-testjoin
  • Şimdi fonksiyona argümanları girelim.
    enter-arguement-in-the-function
    1. sınırlama: » «
    2. görmezden_empty: Doğru
    3. metin1: Aralık (“A1”)
    4. metin2: Aralık(“B1”)

İşte kodun tamamı.

 Sub MyMacro() Range("A1") = _ Application.WorksheetFunction.TextJoin _ (" ", True, Range("A2"), Range("A3")) End Sub

VBA’da kullanabileceğiniz toplam 387 çalışma sayfası işlevi vardır. Ancak kullanılamayan bazı işlevler (Örnek: LEFT ) vardır.

Sebep? VBA’da, VBA kodunu yazarken kullanabileceğiniz yerleşik işlevler vardır. Bir fonksiyonun değerini almak için bir mesaj kutusu kullanmak isteyip istemediğinizi görelim. Diyelim ki “myValues” adlı aralığın maksimum değerini elde etmek istiyorsunuz.

Kod şöyle olacaktır:

 Sub MyMacro() MsgBox Prompt:=WorksheetFunction.Max(Range("myValues")) End Sub

Ve bu şekilde bir mesaj kutusu alırsınız:

adlandırılmış-aralık-değerlerim

Application.WorksheetFunction vs Uygulama

Bir çalışma sayfası işlevine başvurmanın iki farklı yolu vardır. Aşağıda aynı aktiviteyi gerçekleştiren iki farklı kod satırı bulunmaktadır.

uygulama-çalışma sayfasıişlev-vs-uygulama
 Sub MyMacro() MsgBox Prompt:= _ Application.WorksheetFunction.Max(Range("myValues")) MsgBox Prompt:= _ Application.Max(Range("myValues")) End Sub

Ancak ikinci yöntemi kullanmanın bir avantajı var. Hatayı doğrudan görüntülemek yerine bir hata kodu döndürür.

Yorum ekle

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