Excel Hakkında Herşey

Excel Formüllerini VBA'da Kullanmak

Bu bölümde VBA yerleşik formüllerin aksine düşeyara, eğersay gibi excel formüllerini VBA’de kullanmayı öğreneceğiz.

Farklı Excel dilleriyle uyumluluğu sağlamak için formülleri kaydetmek üzere makro kaydediciyi kullanın. Formüller her zaman varsayılan olarak İngilizce adıyla kaydedilir. Bu sayede formüller Excel'in tüm farklı dillerinde çalışır.

FormulaR1C1 özelliği, hücrelere başvurmak için satır ve sütun numaralandırmasını kullanır. Formula özelliği, A1 referans tipini kullanır (bununla birlikte, R1C1 referansını da yorumlayabilir).

İpucu: Excel formülleri kullanıp kopyalamak, VBA formülleri döngü içinde kullanmaktan daha hızlı sonuç verir.

Örnek: Aşağıdaki komutla F sütununda, eğer B sütunundaki değer 1 ile başlıyorsa E sütunundaki tutarı 1,18 ile çarpıyoruz.

Sub Makro_Excel_Formul()

Dim SatirSayisi As Long
Dim i As Long

SatirSayisi = Range("A" & Rows.Count).End(xlUp).Row

'Eğer B sütunundaki hücre değeri 1 ile başlıyorsa tutarı 1,18 ile çarpıyoruz
Range("F2").FormulaR1C1 = "=IF(VALUE(LEFT(RC[-4],1))=1,RC[-1]*1.18,"""")"
Range("F2").AutoFill Destination:=Range("F2:F" & SatirSayisi) 'hücrenin sağ altına tıklayıp formülü aşağı kopyalama işlemi
Application.Calculate 'excel dosyası hesaplama seçeneği manuel olması ihtimaline karşı

Range("A2", "E" & SatirSayisi).Interior.Color = xlNone 'renklendirmeyi siliyoruz

'Eğer F sütunundaki hücre 5000 den küçükse satırı yeşil yapıyoruz
For i = 2 To SatirSayisi
    If Range("F" & i).Value < 5000 Then
        Range("A" & i, "E" & i).Interior.Color = VBA.ColorConstants.vbGreen
        Debug.Print Range("F" & i).Value
    End If
Next i

'Range("F2:F" & SatirSayisi).Clear

End Sub

Sonuç:

Sonuç:

Önemli Not: Eğer büyüktür işareti kullanırsak (If Range("F" & i).Value > 5000 Then) sonuç aşağıdaki gibi hatalı oluyor. VBA, değer boş olduğu halde döngüye girip renklendirme yapıyor.
 
Örnek

Bu durumu önlemek için (If Range("F" & i).Value > 5000 And Range("F" & i).Value <> "" Then) komutunu kullanmamız gerekir.

Excel Formüllerini VBA'da Kullanmak

Paylaş:

Ara

Son eklenen

Diğer Uygulamalarla Etkileşim

Bu bölümde VBA aracılığıyla Word, PowerPoint, Outlook, Adobe gibi uygulamalarla iletişim kurmayı öğreneceğiz. Excel’in dahili yöntem ve meto...