Bir Excel çalışma sayfasında bölge içeriklerinin otomatik hesaplanmasını sağlayacak formüller yerleştirmek.
Bir çalışma sayfasını temsil eden Worksheet nesnesinin Range fonksiyonuyla o sayfadaki herhangi bir dikdörtgen bölge tanımlayabilirsiniz.
Fonksiyona argüman olarak dikdörtgen bölgenin sol üst köşe ve sağ alt köşe hücreleri temsil eden Range nesneleri verirsiniz. Örneğin,
Me.Range(Me.Cells(1,2), Me.Cells(10,5))
fonksiyon çağrısıyla sayfanın “B1” hücresinden “E10” hücresine uzanan bölgenin referansın almış olursunuz.
Range fonksiyonu argüman olarak sütun harfi ve satır numaralarıyla oluşturduğunuz bölge adresini de kabul eder. Örneğin, yukarıdaki örnekteki bölgeye şöyle bir çağrıyla da erişebilirdiniz:
Me.Range("B1:E10")
Bu bölge içeriğini otomatik hesaplamayla belirleyecek bir formül atamak için bölgeyi temsil eden Range nesnesinin Formula özelliğini kullanabilirsiniz.
Bölgeye bir formül dizgisi aktardığınızda bu formül bölgenin sol üst köşesindeki hücre için uygulanır. Diğer bölge hücrelerinde ise formülün gerekli satır ve sütun kaydırmaları yapılarak hesaplanmış sonuçları gözükecektir.
Örneğin,
Me.Range("A2:A10").Formula = "=A1+1"
komutuyla yerleştirdiğiniz formül A1’den A10 hücresine kadarki bölgede 1’erli artan bir sıralı dizi oluşturacaktır.
Öte yandan, aynı formülü “B2:B10” bölgesine uygularsanız,
Me.Range("B1:B10").Formula = "=A1+1"
B1’den B10’a kadarki hücrelerde “A1:A10” aralığında karşılık gelen hücrelerdeki değerlerin 1 fazlasını yerleştirmiş olursunuz.
Bir bölgeyi temsil eden Range nesnesi üzerinde
FillDown fonksiyonuyla bölgenin ilk satırına uyguladığınız formülleri aşağıya doğru,
FillRight fonksiyonuyla bölgenin ilk sütununa uyguladığınız formülleri sağa doğru,
FillUp fonksiyonuyla bölgenin son satırına uyguladığınız formülleri yukarıya doğru,
FillLeft fonksiyonuyla bölgenin son sütununa uyguladığınız formülleri sola doğru
kaydırarak genişletebilirsiniz. $ sembolüyle sabitlemediğiniz sütun ve satır referansları, formülü genişlettiğiniz yöne bağlı olarak, kaydırmalarda birer artacak veya eksilecektir.
Çalışma sayfasında seçeceğiniz bölgeleri temsil edecek bir Range nesnesi tanımlayın:
Dim bolge As Range
Bu nesne aracılığıyla formül uygulayacağınız bölgeye erişin ve tıpkı Excel’i elle kullandığınızdaki gibi oluşturduğunuz formülü Formula özelliğine aktarın.
Aşağıda son halini sunduğumuz altyordam “A1” hücresine 1 değeri aktardıktan sonra onun altında ve sağında sıralı diziler oluşturacak olan “=A1+1” formülünü uyguluyor ve sağ sütuna uygulanan formülü 4 sütunu kapsayacak şekilde sağa doğru genişletiyor.
Kaynak Dosya: “SayfaBolgelerineFormullerYerlestirmek.xlsm”
Unutmayın; kitap veya ekran satırına sığmayan komut satırları alta sarkmış olabilir. Siz onları tek satır olarak yazacaksınız!
Sub SayfaBolgelerineFormullerYerlestirmek()
Dim bolge As Range
Set bolge = Me.Range("A1")
bolge.Value2 = 1
Set bolge = Me.Range("A2:A10")
bolge.Formula = "=A1+1"
Set bolge = Me.Range("B1:B10")
bolge.Formula = "=A1+1"
Set bolge = Me.Range("B1:E10")
bolge.FillRight
End Sub
Sonuçların nasıl değişeceğini görmeniz için bu örnekteki formüllerde sütun veya satır referanslarını $ ile sabitleyerek denemeler yapmanızı öneririz.