DÜŞEYARA, EĞERSAY, SUMIF gibi işlevlere çalışma sayfası işlevleri denir. Genellikle Excel'de önceden tanımlanmış ve bir çalışma sayfasında kullanıma hazır olan fonksiyonlar çalışma sayfası fonksiyonlarıdır. VBA'da bu işlevlerin arkasındaki kodu değiştiremez veya göremezsiniz.
Öte yandan, MsgBox veya InputBox gibi VBA'ya özgü kullanıcı tanımlı işlevler ve işlevler VBA işlevleridir.
Hepimiz VBA'da VBA işlevlerinin nasıl kullanılacağını biliyoruz. Ama ya bir VBA'da DÜŞEYARA kullanmak istiyorsak. Bunu nasıl yaparız? Bu yazıda tam olarak bunu keşfedeceğiz.
VBA'da Çalışma Sayfası İşlevlerini Kullanma
Çalışma sayfası işlevine erişmek için bir Uygulama sınıfı kullanıyoruz. Hemen hemen tüm çalışma sayfası işlevleri Application.WorksheetFunction sınıfında listelenir. Ve nokta operatörünü kullanarak hepsine erişebilirsiniz.
Herhangi bir altta Application.WorksheetFunction yazın. Ve fonksiyonun adını yazmaya başlayın. VBA'nın intellisense'i, kullanılabilecek işlevlerin adını gösterecektir. Fonksiyon adını seçtikten sonra, excel'deki herhangi bir fonksiyon gibi değişkenleri soracaktır. Ancak değişkenleri VBA anlaşılır biçimde iletmeniz gerekecek. Örneğin, A1:A10 aralığını geçmek istiyorsanız, bunu Aralık("A1:A10") gibi bir aralık nesnesi olarak iletmeniz gerekir.
Öyleyse, daha iyi anlamak için bazı çalışma sayfası işlevlerini kullanalım.
VBA'da DÜŞEYARA işlevi nasıl kullanılır?
VBA'da bir DÜŞEYARA işlevini nasıl kullanabileceğinizi göstermek için burada örnek verilerim var. VBA kullanarak bir mesaj kutusunda verilen Giriş Kimliğinin Adını ve Şehrini göstermem gerekiyor. Veriler A1:K26 aralığında yayılır.
VBE'yi açmak ve bir modül eklemek için ALT+F11 tuşlarına basın.
Aşağıdaki koda bakın.
Sub WsFuncitons() Dim loginID As String Dim name, city As String loginID = "AHKJ_1-3357042451" 'Tablo adında verilen kimliğin adını almak için DÜŞEYARA işlevini kullanma = Application.WorksheetFunction.VLookup(loginID, Range("A1:K26") ), 2, 0) 'Tabloda verilen kimliğin şehrini almak için DÜŞEYARA işlevini kullanma = Application.WorksheetFunction.VLookup(loginID, Range("A1:K26"), 4, 0) MsgBox ("Ad: " & ad & vbLf & "Şehir: " & şehir) End Sub
Bu kodu çalıştırdığınızda, bu sonucu alacaksınız.
VBA'nın sonucu bir mesaj kutusuna ne kadar hızlı yazdırdığını görebilirsiniz. Şimdi kodu inceleyelim.
O nasıl çalışır?
1.
String olarak loginID'yi karart
Dim adı, şehir As String
Önce DÜŞEYARA işlevi tarafından döndürülen sonucu depolamak için dize türünde iki değişken bildirdik. Dize türü değişkenleri kullandım çünkü DÜŞEYARA tarafından döndürülen sonucun bir dize değeri olacağından eminim. Çalışma sayfası işlevinizin sayı, tarih, aralık vb. türde bir değer döndürmesi bekleniyorsa, sonucu saklamak için bu tür bir değişken kullanın. Çalışma sayfası işlevi tarafından ne tür bir değer döndürüleceğinden emin değilseniz, varyant türü değişkenleri kullanın.
2.
loginID = "AHKJ_1-3357042451"
Ardından, arama değerini saklamak için loginID değişkenini kullandık. Burada sabit kodlanmış bir değer kullandık. Referansları da kullanabilirsiniz. Örneğin. A2 aralığından arama değerini dinamik olarak güncellemek için Range("A2").Value öğesini kullanabilirsiniz.
3.
ad = Application.WorksheetFunction.VLookup(loginID, Range("A1:K26"), 2, 0)
Burada almak için DÜŞEYARA işlevini kullanıyoruz. Şimdi, işlevi sağlayıp parantezi açtığınızda, size gerekli olan ancak Excel'de gösterildiği kadar açıklayıcı olmayan argümanları gösterecektir. Kendin için gör.
Nasıl ve hangi değişkeni kullanmanız gerektiğini hatırlamanız gerekir. Açıklayıcı değişken ayrıntılarını görmek için her zaman çalışma sayfasına geri dönebilirsiniz.
Burada arama değeri Arg1'dir. Arg1 için loginID kullanıyoruz. Arama tablosu Arg2'dir. Arg2 için Range("A1:K26") kullandık. Excel'de yaptığımız gibi doğrudan A2:K26 kullanmadığımızı unutmayın. Sütun dizini Arg3'tür. Arg3 için ad ikinci sütunda olduğundan 2 kullandık. Arama türü Arg4'tür. 0'ı Arg4 olarak kullandık.
şehir = Application.WorksheetFunction.VLookup(loginID, Range("A1:K26"), 4, 0)
Benzer şekilde şehrin adını da alırız.
4.
MsgBox ("Ad: " & ad & vbLf & "Şehir: " & şehir)
Son olarak Messagebox kullanarak isim ve şehir yazdırıyoruz.
Neden Çalışma Sayfası İşlevini VBA'da kullanmalısınız?
Çalışma sayfası işlevleri muazzam hesaplama gücüne sahiptir ve çalışma sayfası işlevlerinin gücünü göz ardı etmek akıllıca olmayacaktır. Örneğin bir veri setinin standart sapmasını istiyorsak ve bunun için tüm kodu yazmak istiyorsanız saatlerinizi alabilir. Ancak, hesaplamayı tek seferde almak için VBA'daki STDEV.P çalışma sayfası işlevini nasıl kullanacağınızı biliyorsanız.
Sub GetStdDev() std = Application.WorksheetFunction.StDev_P(Range("A1:K26")) End Sub
Çoklu Çalışma Sayfası İşlevlerini Kullanma VBA
Diyelim ki bazı değerleri almak için bir dizin eşleşmesi kullanmamız gerekiyor. Şimdi formülü VBA'da nasıl yazarsınız. Yazacağını tahmin ettiğim şey bu:
Sub IndMtch() Val = Application.WorksheetFunction.Index(result_range, _ Application.WorksheetFunction.Match(lookup_value, _ lookup_range, match_type)) End Sub
Bu yanlış değil ama uzun. Birden çok işlevi kullanmanın doğru yolu With bloğu kullanmaktır. Aşağıdaki örneğe bakın:
Sub IndMtch() with Application.WorksheetFunction Val = .Index(result_range, .Match(lookup_value, lookup_range, match_type)) val2 = .VLookup(arg1, arg2, arg3) val4 = .StDev_P(sayılar) End With End Sub
Gördüğünüz gibi, VBA'ya Application.WorksheetFunction'ın özelliklerini ve işlevlerini kullanacağımı söylemek için With bloğunu kullandım. O yüzden her yerde tanımlamama gerek yok. INDEX, MATCH, DÜŞEYARA ve STDEV.P işlevlerine erişmek için nokta operatörünü kullandım. End With deyimini kullandığımızda, tam işlev adlarını kullanmadan işlevlere erişemeyiz.
Bu nedenle, VBA'da birden çok çalışma sayfası işlevi kullanmanız gerekiyorsa, blok ile kullanın.
Tüm Çalışma Sayfası İşlevleri Application.WorksheetFunction Aracılığıyla Kullanılamaz
Bazı Çalışma Sayfası İşlevleri doğrudan VBA'da kullanılabilir. Application.WorksheetFunction nesnesini kullanmanıza gerek yoktur.
Örneğin, bir dizedeki, sol, sağ, orta, kırpma, ofset vb. karakter sayısını almak için kullanılan Len() gibi işlevler. Bu işlevler doğrudan VBA'da kullanılabilir. İşte bir örnek.
Sub GetLen() Strng = "Merhaba" Debug.Print (Len(strng)) End Sub
Bakın, burada Application.WorksheetFunction nesnesini kullanmadan LEN işlevini kullandık.
Benzer şekilde sol, sağ, orta, karakter vb. gibi diğer işlevleri de kullanabilirsiniz.
Sub GetLen() Strng = "Merhaba" Debug.Print (Len(strng)) Debug.Print (sol(strng,2)) Debug.Print (sağ(strng,1)) Debug.Print (Orta(strng, 3, 2)) Alt Alt
Yukarıdaki sub'ı çalıştırdığınızda, geri dönecektir:
5 O ll
Evet arkadaşlar, Excel'in çalışma sayfası işlevini VBA'da bu şekilde kullanabilirsiniz. Umarım yeterince açıklayıcı olabilmişimdir ve bu makale size yardımcı olmuştur. Bu makale veya VBA ile ilgili herhangi bir sorunuz varsa, aşağıdaki yorum bölümünde sorun. O zamana kadar aşağıdaki diğer ilgili konuları okuyabilirsiniz.
Excel VBA'da CSng İşlevi Nedir? | SCng işlevi, herhangi bir veri türünü tek duyarlıklı kayan noktalı sayıya ("bir sayı olduğu göz önüne alındığında") dönüştüren bir VBA işlevidir. Metin biçimli sayıları gerçek sayılara dönüştürmek için çoğunlukla CSng işlevini kullanıyorum.
Microsoft Excel'de VBA aracılığıyla Ters Metin ve Sayı nasıl elde edilir | Sayı ve metni tersine çevirmek için VBA'da döngüler ve orta işlev kullanıyoruz. 1234, 4321'e, "siz", "uoy"'a dönüştürülecek. İşte fragman.
Microsoft Excel'de VBA kullanarak verileri özel sayı biçimleriyle biçimlendirin | Excel'deki belirli sütunların sayı biçimini değiştirmek için bu VBA pasajını kullanın. Belirtilen sayı biçimini tek tıklamayla belirtilen biçime dönüştürür.
Herhangi Bir Değişiklik Yapıldığında Makroyu Çalıştırmak İçin Çalışma Sayfası Değişiklik Olayını Kullanma | Bu nedenle, sayfa her güncellendiğinde makronuzu çalıştırmak için VBA'nın Çalışma Sayfası Olaylarını kullanıyoruz.
Sayfada Belirlenen Aralıkta Değişiklik Yapılırsa Makroyu Çalıştır | Belirtilen aralıktaki değer değiştiğinde makro kodunuzu çalıştırmak için bu VBA kodunu kullanın. Belirtilen aralıkta yapılan herhangi bir değişikliği algılar ve olayı başlatır.
Geçerli Satırı ve Sütunu Kullanarak Vurgulamak için En Basit VBA Kodu | Sayfanın geçerli satırını ve sütununu vurgulamak için bu küçük VBA parçacığını kullanın.
Popüler Makaleler:
Verimliliğinizi Artıracak 50 Excel Kısayolu | Görevinizde daha hızlı olun. Bu 50 kısayol, Excel'de daha da hızlı çalışmanızı sağlayacaktır.
Excel'de DÜŞEYARA İşlevi | Bu, farklı aralıklardan ve sayfalardan değer aramak için kullanılan excel'in en çok kullanılan ve popüler işlevlerinden biridir.
Excel 2016'da EĞERSAY | Bu şaşırtıcı işlevi kullanarak değerleri koşullarla sayın. Belirli değerleri saymak için verilerinizi filtrelemeniz gerekmez. Gösterge tablonuzu hazırlamak için Countif işlevi gereklidir.
Excel'de SUMIF İşlevi Nasıl Kullanılır | Bu, başka bir gösterge panosu temel işlevidir. Bu, belirli koşullardaki değerleri özetlemenize yardımcı olur.