Bir Makroda Çalışma Sayfası İşlevlerini Kullanma - VBA Kodu Örnekleri

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.

İşlevAçıklama
Mantıklı
VETüm koşulların karşılanıp karşılanmadığını kontrol eder. DOĞRU YANLIŞ
EĞERKoşul sağlanırsa, bir şey yapın, değilse başka bir şey yapın.
EĞERHATASonuç bir hataysa, başka bir şey yapın.
VEYAHerhangi 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.
İNDEKSSütun ve satır numaralarına göre bir değer döndürür.
BAKMAKDeğerleri yatay veya dikey olarak arar.
KİBRİTListede bir değer arar ve konumunu döndürür.
TRANSPOZBir 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İHYıl, ay ve günden bir tarih döndürür.
DATEVALUEMetin olarak saklanan bir tarihi geçerli bir tarihe dönüştürür
GÜNGünü bir sayı (1-31) olarak döndürür.
DAYS360360 günlük bir yılda 2 tarih arasındaki günleri döndürür.
EDATEBaşlangıç ​​tarihinden n ay önce bir tarih döndürür.
EOMONTHAyın son gününü, n ay uzaktaki tarihi döndürür.
SAATSaati bir sayı (0-23) olarak döndürür.
DAKİKADakikayı bir sayı (0-59) olarak döndürür.
AYAyı bir sayı (1-12) olarak döndürür.
TAMİŞGÜNLERİ2 tarih arasındaki iş günü sayısı.
TAMİŞGÜNÜ.ULUSL2 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)
ZAMANSaati, 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 SAYISIBir yıldaki (1-52) hafta numarasını döndürür.
İŞGÜNÜBir tarihten itibaren tarih n iş günü.
YILYılı döndürür.
YEARFRAC2 tarih arasındaki bir yılın kesirini verir.
Mühendislik
DÖNÜŞTÜRMEKSayıyı bir birimden diğerine dönüştürün.
Parasal
FVGelecekteki değeri hesaplar.
PVMevcut değeri hesaplar.
NPERToplam ödeme dönemi sayısını hesaplar.
PMTÖdeme tutarını hesaplar.
ORANFaiz Oranını hesaplar.
NPVNet bugünkü değeri hesaplar.
IRRBir dizi periyodik CF için dahili getiri oranı.
XIRRPeriyodik olmayan bir dizi CF için dahili getiri oranı.
FİYATBir tahvilin fiyatını hesaplar.
İNTRATETam olarak yatırılmış bir menkul kıymetin faiz oranı.
Bilgi
ISERRHücre değerinin bir hata olup olmadığını test edin, #N/A'yı yok sayar. DOĞRU YANLIŞ
ISERRORHücre değerinin bir hata olup olmadığını test edin. DOĞRU YANLIŞ
SEVENHücre değerinin çift olup olmadığını test edin. DOĞRU YANLIŞ
İSLOJİKHücrenin mantıksal olup olmadığını test edin (DOĞRU veya YANLIŞ). DOĞRU YANLIŞ
ISNAHücre değerinin #N/A olup olmadığını test edin. DOĞRU YANLIŞ
ISNONTEXTHücrenin metin olup olmadığını test edin (boş hücreler metin değildir). DOĞRU YANLIŞ
NUMARAHücrenin bir sayı olup olmadığını test edin. DOĞRU YANLIŞ
GARİPHücre değerinin tek olup olmadığını test edin. DOĞRU YANLIŞ
ISTEXTHücrenin metin olup olmadığını test edin. DOĞRU YANLIŞ
TİPBir hücredeki değerin türünü döndürür.
Matematik
ABSBir sayının mutlak değerini hesaplar.
AGREGABir veritabanı veya liste için hesaplamaları tanımlayın ve gerçekleştirin.
TAVANBir sayıyı belirtilen en yakın kata yuvarlar.
çünküBir açının kosinüsünü döndürür.
DERECELERRadyanı dereceye dönüştürür.
DSUMBelirli kriterleri karşılayan veritabanı kayıtlarını toplar.
HATTAEn yakın çift tam sayıya yuvarlar.
tecrübeBelirli bir sayı için üstel değeri hesaplar.
HAKİKATFaktöriyel döndürür.
ZEMİNBir sayıyı belirtilen en yakın kata yuvarlar.
GCDEn büyük ortak böleni döndürür.
INTBir sayıyı en yakın tam sayıya yuvarlar.
LCMEn küçük ortak katı döndürür.
LNBir sayının doğal logaritmasını döndürür.
KAYITBir sayının logaritmasını belirtilen bir tabana döndürür.
LOG10Bir sayının 10 tabanlı logaritmasını döndürür.
HAREKETBir sayıyı belirtilen bir kata yuvarlar.
GARİPEn yakın tek tam sayıya yuvarlar.
PIPI'nin değeri.
GÜÇBir güce yükseltilmiş bir sayıyı hesaplar.
ÜRÜNSayı dizisini çarpar.
BÖLÜMBölmenin tamsayı sonucunu döndürür.
RADYANLARBir açıyı radyana dönüştürür.
RANDBETWEENİki sayı arasında rastgele bir sayı hesaplar.
YUVARLAKBir sayıyı belirtilen sayıda basamağa yuvarlar.
AŞAĞI YUVARLAMABir sayıyı aşağı (sıfıra doğru) yuvarlar.
HESABI YUVARLAMAKBir sayıyı yukarı yuvarlar (sıfırdan uzağa).
GÜNAHBir açının sinüsünü döndürür.
ARA TOPLAMBir dizi veri için bir özet istatistik döndürür.
TOPLASayıları birbirine ekler.
SUMIFBir ölçütü karşılayan sayıları toplar.
TOPLABirden çok kriteri karşılayan sayıları toplar.
SUMPRODUCTSayı dizilerini çarpar ve sonuçtaki diziyi toplar.
TANBir açının tanjantını döndürür.
İstatistikler
ORTALAMAOrtalama sayılar.
ORTALAMABir ölçütü karşılayan sayıların ortalamasını alır.
EĞER ORTALAMABirden çok kriteri karşılayan sayıların ortalamasını alır.
KORELİki serinin korelasyonunu hesaplar.
SAYMAKBir sayı içeren hücreleri sayar.
COUNTABoş olmayan hücreleri sayın.
COUNTBOLANKBoş olan hücreleri sayar.
EĞERSAYBir ölçütü karşılayan hücreleri sayar.
EĞERSAYBirden çok ölçütü karşılayan hücreleri sayar.
TAHMİN ETMEKDoğrusal eğilim çizgisinden gelecek y değerlerini tahmin edin.
SIKLIKBelirtilen aralıklar içinde kalan değerleri sayar.
BÜYÜMEÜstel büyümeye dayalı olarak Y değerlerini hesaplar.
TUTMAKEn uygun çizgi için Y kesişimini hesaplar.
BÜYÜKk. en büyük değeri döndürür.
LINESTBir eğilim çizgisiyle ilgili istatistikleri döndürür.
MAKSEn büyük sayıyı döndürür.
MEDYANOrtanca sayıyı döndürür.
MINEn küçük sayıyı döndürür.
MODEn yaygın sayıyı döndürür.
YÜZDELİKk. 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.HRCk. yüzdelik dilimini döndürür. Burada k özeldir.
dörtte birBelirtilen çeyrek değerini döndürür.
QUARTILE.INCBelirtilen çeyrek değerini döndürür. Dahil.
QUARTILE.HRCBelirtilen çeyrek değerini döndürür. Özel.
RÜTBEBir dizi içindeki bir sayının sıralaması.
RANK.ORTBir dizi içindeki bir sayının sıralaması. Ortalamalar.
RANK.EŞİTBir dizi içindeki bir sayının sıralaması. Üst Sıra.
EĞİMDoğrusal regresyondan eğimi hesaplar.
KÜÇÜKk. en küçük değeri döndürür.
STDEVStandart sapmayı hesaplar.
STDEV.PTüm popülasyonun SD'sini hesaplar.
STDEV.SBir örneğin SD'sini hesaplar.
STDEVPTüm popülasyonun SD'sini hesaplar
AKIMBir eğilim çizgisine dayalı olarak Y değerlerini hesaplar.
Metin
TEMİZYazdırılamayan tüm karakterleri kaldırır.
DOLARSayıyı para birimi biçiminde metne dönüştürür.
BULMAKBir hücre içindeki metnin konumunu bulur. Büyük/küçük harfe duyarlıdır.
SOLMetni soldan birkaç karakter kadar kısaltır.
UZUNLUKMetindeki karakter sayısını sayar.
ORTABir hücrenin ortasından metin çıkarır.
DÜZGÜNMetni uygun duruma dönüştürür.
YER DEĞİŞTİRMEKMetni konumuna göre değiştirir.
TEKRARMetni birkaç kez tekrarlar.
SAĞMetni sağdan birkaç karakter kadar kısaltır.
ARAMABir hücre içindeki metnin konumunu bulur. Büyük/küçük harfe duyarlı değildir.
YERİNE GEÇMEKMetni bulur ve değiştirir. Harfe duyarlı.
METİNBir değeri, belirli bir sayı biçimiyle metne dönüştürür.
KIRMIZIMetindeki tüm fazla boşlukları kaldırır.
wave wave wave wave wave