Microsoft Excel'de VBA kullanan VBA makrolarında çalışma sayfası işlevleri

Anonim

VBA kodunda, Sum, Vlookup, vb. gibi belirli çalışma sayfası işlevlerine başvurmanız gerekiyorsa, bunları doğrudan Application nesnesini kullanarak kullanabilirsiniz. Bu yüzden fonksiyonları şu şekilde kullanacağız -

Application.WorksheetFunction.Sum veya Application.WorksheetFunction.Vlookup nerede WorksheetFunction, Application nesnesinin yöntemidir.

Bu test makrosuna sahip olduğumuzu düşünürsek, yazarsak

Application.WorksheetFunction.

Aşağıdaki resme atıfta bulunan formülleri gösteren bir açılır pencere alacağız

Örneğin, bu aralığın değerlerini vba kullanarak A sütununda toplamak istiyorsanız -

İçinde toplamı kaydedecek SalesTotal adında bir değişkenimiz olsun. SalesTotal'da toplamı almak için standart modülde aşağıdaki VBA kodunu kullanacağız:

Alt makro4()
Dim Satışlar Toplam Kadar Uzun
SalesTotal = Application.WorksheetFunction.Sum(Range("A2:A6"))
MsgBox Satış Toplamı
Alt Bitiş

Yukarıdaki kodu dosyanıza kopyalamak için,

  • Klavyede Alt + F11 tuşlarına basın.
  • Sol tarafta Microsoft Excel Nesneleri göreceksiniz.
  • Sağ tıklayın ve Ekle'yi seçin.
  • Ardından Modül'e tıklayın.
  • Kodu sağdaki kod penceresine kopyalayın.

Bu örnek makroyu kullandığımızda, Satış Toplamında saklanan ve makroda daha sonraki kod satırlarında kullanılabilecek değeri gösteren bir mesaj alacağız.

Alacağımız çıktı -

Satış Toplamının A7 hücresinde gösterilmesini istiyorsanız, kod satırını şuradan değiştirebilirsiniz:

Msgbox SatışlarToplamile Çalışma Sayfaları(“Sayfa1”).Aralık(“A7”).Değer = Toplam Satış

A9 hücresindeki bu rakamlar için ortalama satışlara da ihtiyacımız olduğunu düşünürsek. Aşağıdaki kodu kullanabiliriz

Alt makro5()
Dim Satışlar Toplam Kadar Uzun
Çalışma Sayfaları ile ("Sayfa1")
SalesTotal = Application.WorksheetFunction.Sum(.Range("A2:A6"))
.Range("A7").Value = SatışToplam
.Range("A9").Value = Application.WorksheetFunction.Average(.Range("A2:A6"))
İle bitmek
Alt Bitiş

Bir öncekine kıyasla bu kodda küçük değişiklikler var.

  • Ortalama için bir değişken kullanmak yerine, hesaplamadan sonra bu değeri doğrudan A9 hücresine doldurdum. Bu nedenle, .Range(“A9”).Value = Application.WorksheetFunction.Average(.Range(“A2:A6”)) satırını göreceksiniz.
  • msgbox satırı kaldırıldı.
  • SalesTotal değişkenindeki değer A7 hücresine gider.
  • İdeal olarak, ortalama için kullanılan aynı kod satırını Toplam kod satırı için değiştirerek tekrarlayabilirsiniz.

SalesTotal = Application.WorksheetFunction.Sum(.Range(“A2:A6”))

.Aralık(“A7”).Değer = SatışToplam

İle birlikte

.Range(“A7”).Value = Application.WorksheetFunction.Sum(.Range(“A2:A6”))

Ancak, aynı görevi kodlamanın farklı yollarını anlayabilmeniz için korunmuştur. Benzer şekilde Application.WorksheetFunction'ı kullanırken diğer işlevleri de kullanabiliriz. Çalışma sayfasında doğrudan kullanabileceğimiz tüm bu işlevleri burada kullanabiliriz.

Bu, koddaki işlevlerin kullanımını kolaylaştırır, böylece formül için bir kod oluşturmaya gerek kalmadan gerekli formülleri hesaplayabiliriz.

Bloglarımızı beğendiyseniz, Facebook'ta arkadaşlarınızla paylaşın. Ayrıca bizi Twitter ve Facebook'ta da takip edebilirsiniz.
Sizden haber almayı çok isteriz, işimizi nasıl iyileştirebileceğimizi, tamamlayabileceğimizi veya yenileyebileceğimizi ve sizin için daha iyi hale getirebileceğimizi bize bildirin. bize yazın e-posta sitesi