VBA'da işlevleri kullanmanın birçok yolu vardır. VBA, birçok yerleşik işlevle yüklü olarak gelir. Hatta kendi işlevlerinizi (UDF'ler) oluşturabilirsiniz. Ancak, Application.WorksheetFunction'ı kullanarak Excel'in birçok işlevini VBA'da da kullanabilirsiniz.
VBA'da Çalışma Sayfası İşlevleri Nasıl Kullanılır
VBA'da bir Excel işlevine erişmek için çağırmak istediğiniz işlevin önüne Application.WorksheetFunction ekleyin. Aşağıdaki örnekte, Excel'in Maksimum İşlevini arayacağız:
12 | Dim maxvalue kadar uzunmaxvalue = Application.WorksheetFunction.Max(Range("a1").Value, Range("a2").Value) |
İşlevlerin sözdizimi aynıdır, ancak işlev bağımsız değişkenlerini diğer herhangi bir VBA işlevinde yaptığınız gibi gireceksiniz.
Yazarken Max Function sözdiziminin göründüğüne dikkat edin (VBA Functions ile benzer):
Çalışma SayfasıFonksiyon Yöntemi
WorksheetFunction, Application nesnesinin bir yöntemidir. Standart Excel çalışma sayfası işlevlerinin çoğuna (tümüne değil) erişmenizi sağlar. Genel olarak, karşılık gelen bir VBA sürümüne sahip hiçbir çalışma sayfası işlevine erişim elde edemezsiniz.
Aşağıda en yaygın Çalışma Sayfası İşlevlerinin birçoğunun bir listesini görebilirsiniz.
Application.WorksheetFunction vs. Application
Bu işlevlere erişmenin aslında iki yolu vardır:
Application.WorksheetFunction (yukarıda görüldüğü gibi):
1 | maxvalue = Application.WorksheetFunction.Max(Range("a1").Value, Range("a2").Value) |
veya WorksheetFunction'ı atlayabilirsiniz
1 | maxvalue = Application.Max(Range("a1").Value, Range("a2").Value) |
Ne yazık ki, WorksheetFunction'ın atlanması, sözdizimini görüntüleyen Intellisense'i ortadan kaldıracaktır (yukarıdaki resme bakın). Ancak, büyük bir potansiyel avantajı vardır: Hata yönetimi.
Uygulama kullanırsanız ve işleviniz bir hata üretirse, hata değerini döndürür. WorksheetFunction yöntemini kullanırsanız, VBA bir çalışma zamanı hatası verir. Tabii ki, VBA hatasını çözebilirsiniz, ancak genellikle ilk etapta hatayı önlemek daha iyidir.
Farkı görmek için bir örneğe bakalım:
Vlookup Çalışma Sayfasıİşlev Hatası İşleme
Bir eşleşmeyle sonuçlanmayacak bir Vlookup gerçekleştirmeye çalışacağız. Böylece Vlookup işlevi bir hata döndürür.
İlk olarak WorksheetFunction yöntemini kullanacağız. VBA'nın nasıl bir hata verdiğine dikkat edin:
Ardından WorksheetFunction'ı çıkarıyoruz. Nasıl olduğuna dikkat edin
Ardından WorksheetFunction'ı çıkaracağız. Nasıl hata atılmadığına ve bunun yerine 'değer' işlevinin Vlookup'taki hata değerini içerdiğine dikkat edin.
VBA Çalışma Sayfası İşlevleri Listesi
Aşağıda, yaygın VBA WorksheetFunctions'ın çoğunun bir listesini bulacaksınız.
İşlev | Açıklama |
---|---|
Mantıklı | |
VE | Tüm koşulların karşılanıp karşılanmadığını kontrol eder. DOĞRU YANLIŞ |
EĞER | Koşul sağlanırsa, bir şey yapın, değilse başka bir şey yapın. |
EĞERHATA | Sonuç bir hataysa, başka bir şey yapın. |
VEYA | Herhangi bir koşulun karşılanıp karşılanmadığını kontrol eder. DOĞRU YANLIŞ |
Arama ve Referans | |
SEÇ | Konum numarasına göre listeden bir değer seçer. |
HLOOKUP | İlk satırda bir değer arayın ve bir değer döndürün. |
İNDEKS | Sütun ve satır numaralarına göre bir değer döndürür. |
BAKMAK | Değerleri yatay veya dikey olarak arar. |
KİBRİT | Listede bir değer arar ve konumunu döndürür. |
TRANSPOZ | Bir hücre aralığının yönünü değiştirir. |
DÜŞEYARA | İlk sütunda bir değer arayın ve bir değer döndürün. |
Tarih ve Saat | |
TARİH | Yıl, ay ve günden bir tarih döndürür. |
DATEVALUE | Metin olarak saklanan bir tarihi geçerli bir tarihe dönüştürür |
GÜN | Günü bir sayı (1-31) olarak döndürür. |
DAYS360 | 360 günlük bir yılda 2 tarih arasındaki günleri döndürür. |
EDATE | Başlangıç tarihinden n ay önce bir tarih döndürür. |
EOMONTH | Ayın son gününü, n ay uzaktaki tarihi döndürür. |
SAAT | Saati bir sayı (0-23) olarak döndürür. |
DAKİKA | Dakikayı bir sayı (0-59) olarak döndürür. |
AY | Ayı bir sayı (1-12) olarak döndürür. |
TAMİŞGÜNLERİ | 2 tarih arasındaki iş günü sayısı. |
TAMİŞGÜNÜ.ULUSL | 2 tarih arasındaki iş günleri, özel hafta sonları. |
ŞİMDİ | Geçerli tarih ve saati döndürür. |
İKİNCİ | Saniyeyi bir sayı olarak döndürür (0-59) |
ZAMAN | Saati, dakikayı ve saniyeyi döndürür. |
ZAMAN DEĞERİ | Metin olarak saklanan bir zamanı geçerli bir zamana dönüştürür. |
HAFTA İÇİ | Haftanın gününü sayı (1-7) olarak döndürür. |
HAFTA SAYISI | Bir yıldaki (1-52) hafta numarasını döndürür. |
İŞGÜNÜ | Bir tarihten itibaren tarih n iş günü. |
YIL | Yılı döndürür. |
YEARFRAC | 2 tarih arasındaki bir yılın kesirini verir. |
Mühendislik | |
DÖNÜŞTÜRMEK | Sayıyı bir birimden diğerine dönüştürün. |
Parasal | |
FV | Gelecekteki değeri hesaplar. |
PV | Mevcut değeri hesaplar. |
NPER | Toplam ödeme dönemi sayısını hesaplar. |
PMT | Ödeme tutarını hesaplar. |
ORAN | Faiz Oranını hesaplar. |
NPV | Net bugünkü değeri hesaplar. |
IRR | Bir dizi periyodik CF için dahili getiri oranı. |
XIRR | Periyodik olmayan bir dizi CF için dahili getiri oranı. |
FİYAT | Bir tahvilin fiyatını hesaplar. |
İNTRATE | Tam olarak yatırılmış bir menkul kıymetin faiz oranı. |
Bilgi | |
ISERR | Hücre değerinin bir hata olup olmadığını test edin, #N/A'yı yok sayar. DOĞRU YANLIŞ |
ISERROR | Hücre değerinin bir hata olup olmadığını test edin. DOĞRU YANLIŞ |
SEVEN | Hücre değerinin çift olup olmadığını test edin. DOĞRU YANLIŞ |
İSLOJİK | Hücrenin mantıksal olup olmadığını test edin (DOĞRU veya YANLIŞ). DOĞRU YANLIŞ |
ISNA | Hücre değerinin #N/A olup olmadığını test edin. DOĞRU YANLIŞ |
ISNONTEXT | Hücrenin metin olup olmadığını test edin (boş hücreler metin değildir). DOĞRU YANLIŞ |
NUMARA | Hücrenin bir sayı olup olmadığını test edin. DOĞRU YANLIŞ |
GARİP | Hücre değerinin tek olup olmadığını test edin. DOĞRU YANLIŞ |
ISTEXT | Hücrenin metin olup olmadığını test edin. DOĞRU YANLIŞ |
TİP | Bir hücredeki değerin türünü döndürür. |
Matematik | |
ABS | Bir sayının mutlak değerini hesaplar. |
AGREGA | Bir veritabanı veya liste için hesaplamaları tanımlayın ve gerçekleştirin. |
TAVAN | Bir sayıyı belirtilen en yakın kata yuvarlar. |
çünkü | Bir açının kosinüsünü döndürür. |
DERECELER | Radyanı dereceye dönüştürür. |
DSUM | Belirli kriterleri karşılayan veritabanı kayıtlarını toplar. |
HATTA | En yakın çift tam sayıya yuvarlar. |
tecrübe | Belirli bir sayı için üstel değeri hesaplar. |
HAKİKAT | Faktöriyel döndürür. |
ZEMİN | Bir sayıyı belirtilen en yakın kata yuvarlar. |
GCD | En büyük ortak böleni döndürür. |
INT | Bir sayıyı en yakın tam sayıya yuvarlar. |
LCM | En küçük ortak katı döndürür. |
LN | Bir sayının doğal logaritmasını döndürür. |
KAYIT | Bir sayının logaritmasını belirtilen bir tabana döndürür. |
LOG10 | Bir sayının 10 tabanlı logaritmasını döndürür. |
HAREKET | Bir sayıyı belirtilen bir kata yuvarlar. |
GARİP | En yakın tek tam sayıya yuvarlar. |
PI | PI'nin değeri. |
GÜÇ | Bir güce yükseltilmiş bir sayıyı hesaplar. |
ÜRÜN | Sayı dizisini çarpar. |
BÖLÜM | Bölmenin tamsayı sonucunu döndürür. |
RADYANLAR | Bir açıyı radyana dönüştürür. |
RANDBETWEEN | İki sayı arasında rastgele bir sayı hesaplar. |
YUVARLAK | Bir sayıyı belirtilen sayıda basamağa yuvarlar. |
AŞAĞI YUVARLAMA | Bir sayıyı aşağı (sıfıra doğru) yuvarlar. |
HESABI YUVARLAMAK | Bir sayıyı yukarı yuvarlar (sıfırdan uzağa). |
GÜNAH | Bir açının sinüsünü döndürür. |
ARA TOPLAM | Bir dizi veri için bir özet istatistik döndürür. |
TOPLA | Sayıları birbirine ekler. |
SUMIF | Bir ölçütü karşılayan sayıları toplar. |
TOPLA | Birden çok kriteri karşılayan sayıları toplar. |
SUMPRODUCT | Sayı dizilerini çarpar ve sonuçtaki diziyi toplar. |
TAN | Bir açının tanjantını döndürür. |
İstatistikler | |
ORTALAMA | Ortalama sayılar. |
ORTALAMA | Bir ölçütü karşılayan sayıların ortalamasını alır. |
EĞER ORTALAMA | Birden çok kriteri karşılayan sayıların ortalamasını alır. |
KOREL | İki serinin korelasyonunu hesaplar. |
SAYMAK | Bir sayı içeren hücreleri sayar. |
COUNTA | Boş olmayan hücreleri sayın. |
COUNTBOLANK | Boş olan hücreleri sayar. |
EĞERSAY | Bir ölçütü karşılayan hücreleri sayar. |
EĞERSAY | Birden çok ölçütü karşılayan hücreleri sayar. |
TAHMİN ETMEK | Doğrusal eğilim çizgisinden gelecek y değerlerini tahmin edin. |
SIKLIK | Belirtilen aralıklar içinde kalan değerleri sayar. |
BÜYÜME | Üstel büyümeye dayalı olarak Y değerlerini hesaplar. |
TUTMAK | En uygun çizgi için Y kesişimini hesaplar. |
BÜYÜK | k. en büyük değeri döndürür. |
LINEST | Bir eğilim çizgisiyle ilgili istatistikleri döndürür. |
MAKS | En büyük sayıyı döndürür. |
MEDYAN | Ortanca sayıyı döndürür. |
MIN | En küçük sayıyı döndürür. |
MOD | En yaygın sayıyı döndürür. |
YÜZDELİK | k. yüzdelik dilimini döndürür. |
YÜZDEBİRLİK.D.Ş. | k. yüzdelik dilimini döndürür. Burada k kapsayıcıdır. |
YÜZDEBİRLİK.HRC | k. yüzdelik dilimini döndürür. Burada k özeldir. |
dörtte bir | Belirtilen çeyrek değerini döndürür. |
QUARTILE.INC | Belirtilen çeyrek değerini döndürür. Dahil. |
QUARTILE.HRC | Belirtilen çeyrek değerini döndürür. Özel. |
RÜTBE | Bir dizi içindeki bir sayının sıralaması. |
RANK.ORT | Bir dizi içindeki bir sayının sıralaması. Ortalamalar. |
RANK.EŞİT | Bir dizi içindeki bir sayının sıralaması. Üst Sıra. |
EĞİM | Doğrusal regresyondan eğimi hesaplar. |
KÜÇÜK | k. en küçük değeri döndürür. |
STDEV | Standart sapmayı hesaplar. |
STDEV.P | Tüm popülasyonun SD'sini hesaplar. |
STDEV.S | Bir örneğin SD'sini hesaplar. |
STDEVP | Tüm popülasyonun SD'sini hesaplar |
AKIM | Bir eğilim çizgisine dayalı olarak Y değerlerini hesaplar. |
Metin | |
TEMİZ | Yazdırılamayan tüm karakterleri kaldırır. |
DOLAR | Sayıyı para birimi biçiminde metne dönüştürür. |
BULMAK | Bir hücre içindeki metnin konumunu bulur. Büyük/küçük harfe duyarlıdır. |
SOL | Metni soldan birkaç karakter kadar kısaltır. |
UZUNLUK | Metindeki karakter sayısını sayar. |
ORTA | Bir hücrenin ortasından metin çıkarır. |
DÜZGÜN | Metni uygun duruma dönüştürür. |
YER DEĞİŞTİRMEK | Metni konumuna göre değiştirir. |
TEKRAR | Metni birkaç kez tekrarlar. |
SAĞ | Metni sağdan birkaç karakter kadar kısaltır. |
ARAMA | Bir hücre içindeki metnin konumunu bulur. Büyük/küçük harfe duyarlı değildir. |
YERİNE GEÇMEK | Metni bulur ve değiştirir. Harfe duyarlı. |
METİN | Bir değeri, belirli bir sayı biçimiyle metne dönüştürür. |
KIRMIZI | Metindeki tüm fazla boşlukları kaldırır. |