Bu eğitim size VBA kullanarak hücre formüllerinin nasıl oluşturulacağını öğretecektir.
VBA'daki formüller
VBA'yı kullanarak formülleri doğrudan Excel'deki Aralıklara veya Hücrelere yazabilirsiniz. Şuna benziyor:
123456789 | Alt Formül_Örnek()'Tek bir hücreye sabit kodlanmış formül atamaAralık("b3").Formül = "=b1+b2"'Bir dizi hücreye esnek bir formül atayınAralık("d1:d100").FormulaR1C1 = "=RC2+RC3"Alt Bitiş |
Bilmeniz gereken iki Aralık özelliği vardır:
- .Formül - Kesin bir formül oluşturur (sabit kodlanmış hücre referansları). Tek bir hücreye formül eklemek için iyi.
- .FormulaR1C1 - Esnek bir formül oluşturur. Hücre başvurularının değişmesi gereken bir hücre aralığına formül eklemek için iyidir.
Basit formüller için .Formula Özelliğini kullanmak uygundur. Ancak, diğer her şey için şunu kullanmanızı öneririz: Makro Kaydedici…
Makro Kaydedici ve Hücre Formülleri
Makro Kaydedici, VBA ile hücre formülleri yazmak için başvurduğumuz aracımızdır. Basitçe şunları yapabilirsiniz:
- Kayda başla
- Formülü (gerektiğinde göreli / mutlak referanslarla) hücreye yazın ve enter tuşuna basın
- Kaydetmeyi bırak
- VBA'yı açın ve formülü gözden geçirin, gerektiği gibi uyarlayın ve gerektiğinde kodu kopyalayın+yapıştırın.
buldum daha kolay VBA'da karşılık gelen formülü yazmaktansa hücreye formül girmek.
Birkaç şeye dikkat edin:
- Makro Kaydedici her zaman .FormulaR1C1 özelliğini kullanır
- Makro Kaydedici Mutlak ve Göreli Hücre Referanslarını tanır
VBA FormulaR1C1 Özellik
FormulaR1C1 özelliği, R1C1 stili hücre referansını kullanır (Excel'de görmeye alışkın olduğunuz standart A1 stilinin aksine).
İşte bazı örnekler:
12345678910111213141516171819 | Alt FormülR1C1_Örnekler()'Referans D5 (Mutlak)'=$D$5Aralık("a1").FormulaR1C1 = "=R5C4"A1 hücresinden 'Referans D5 (Göreceli)'=D5Aralık("a1").FormulaR1C1 = "=R[4]C[3]"A1 hücresinden 'Referans D5 (Mutlak Satır, Göreli Sütun)'=D$5Aralık("a1").FormulaR1C1 = "=R5C[3]"A1 hücresinden 'Referans D5 (Göreceli Satır, Mutlak Sütun)'=$D5Aralık("a1").FormulaR1C1 = "=R[4]C4"Alt Bitiş |
R1C1 stili hücre referansının, mutlak veya göreli referanslar ayarlamanıza izin verdiğine dikkat edin.
Mutlak Referanslar
Standart A1 notasyonunda mutlak bir referans şuna benzer: “=$C$2”. R1C1 notasyonunda şöyle görünür: “=R2C3”.
R1C1 stili türünü kullanarak bir Mutlak hücre referansı oluşturmak için:
- R + Satır numarası
- C + Sütun numarası
Örnek: R2C3, $C$2 hücresini temsil eder (C, 3. sütundur).
123 | 'Referans D5 (Mutlak)'=$D$5Aralık("a1").FormulaR1C1 = "=R5C4" |
Göreli Referanslar
Göreli hücre referansları, formül taşındığında "hareket eden" hücre referanslarıdır.
Standart A1 notasyonunda şöyle görünürler: “=C2”. R1C1 notasyonunda, hücre referansını geçerli hücreden dengelemek için köşeli parantez [] kullanırsınız.
Örnek: B3 hücresine “=R[1]C[1]” formülü girildiğinde, D4 hücresine başvuruda bulunulur (formül hücresinin altındaki hücre 1 satırı ve 1 sütunu).
Geçerli hücrenin üstündeki veya solundaki hücrelere başvurmak için negatif sayılar kullanın.
123 | A1 hücresinden 'Referans D5 (Göreceli)'=D5Aralık("a1").FormulaR1C1 = "=R[4]C[3]" |
Karışık Referanslar
Hücre referansları kısmen göreli ve kısmen mutlak olabilir. Örnek:
123 | A1 hücresinden 'Referans D5 (Göreceli Satır, Mutlak Sütun)'=$D5Aralık("a1").FormulaR1C1 = "=R[4]C4" |
VBA Formül Özelliği
ile formülleri ayarlarken.Formül Özelliği her zaman A1 stili notasyonu kullanacaksınız. Formülü, tırnak içine alınması dışında, tıpkı bir Excel hücresindeki gibi girersiniz:
12 | 'Tek bir hücreye sabit kodlanmış bir formül atamaAralık("b3").Formül = "=b1+b2" |
VBA Formülü İpuçları
Değişkenli Formül
VBA'da Formüllerle çalışırken, hücre formüllerinde değişkenleri kullanmak çok yaygındır. Değişkenleri kullanmak için, değişkenleri formül dizesinin geri kalanıyla birleştirmek için & kullanırsınız. Örnek:
1234567 | Alt Formula_Değişken()Dim colNum As LongsütunNum = 4Range("a1").FormulaR1C1 = "=R1C" & colNum & "+R2C" & colNumAlt Bitiş |
Formül Alıntıları
Bir formül içine bir teklif (") eklemeniz gerekiyorsa, teklifi iki kez ("") girin:
123 | Alt Makro2()Aralık("B3").FormulaR1C1 = "=METİN(RC[-1],""aa/gg/yyyy"")"Alt Bitiş |
Tek bir tırnak (“), VBA'ya bir metin dizisinin sonunu belirtir. Oysa çift tırnak (“”), metin dizesi içindeki bir alıntı gibi değerlendirilir.
Benzer şekilde, bir dizeyi tırnak işaretiyle (") çevrelemek için 3 tırnak işareti ("") kullanın.
12 | MsgBox """Bir dizeyi tırnak içine almak için 3 kullanın"""' Bu hemen pencereyi yazdıracak |
Dize Değişkenine Hücre Formülü Atama
Formülü belirli bir hücrede veya aralıkta okuyabilir ve onu bir dize değişkenine atayabiliriz:
123 | 'Değişkene Hücre Formülü AtaDize olarak strFormula DimstrFormula = Aralık("B1").Formül |
Hücreye Formül Eklemenin Farklı Yolları
Bir hücreye nasıl formül atanacağına ilişkin birkaç örnek daha:
- Doğrudan Formül Ata
- Formülü İçeren Bir Dize Değişkeni Tanımlayın
- Formül Oluşturmak için Değişkenleri Kullanın
12345678910111213141516171819202122232425 | Alt Daha FazlaFormülÖrnek ()TOPLA formülü eklemenin alternatif yolları' B1 hücresine'Dize olarak strFormula DimHücreyi Aralık olarak karartAralık olarak Satırdan, Aralık olarak Satırdan karartHücreyi ayarla = Aralık ("B1")' Doğrudan bir String atamacell.Formula = "=TOPLA(A1:A10)"'Dizeyi bir değişkene kaydetme' ve "Formül" özelliğine atamastrFormula = "=TOPLA(A1:A10)"cell.Formula = strFormula' Bir dize oluşturmak için değişkenleri kullanma' ve onu "Formül" özelliğine atamaitibarenSatır = 1toSatır = 10strFormula = "=SUM(A" & fromValue & ":A" & toValue & ")cell.Formula = strFormulaAlt Bitiş |
Formülleri Yenile
Hatırlatma olarak, formülleri yenilemek için Hesapla komutunu kullanabilirsiniz:
1 | Hesaplamak |
Tek bir formülü, aralığı veya tüm çalışma sayfasını yenilemek için bunun yerine .Calculate öğesini kullanın:
1 | Sayfalar("Sayfa1").Range("a1:a10").Hesapla |