Alana Döngüsüz Formül Ekle - Microsoft Excel


Formüller her ne kadar daha çok güvenebileceğimiz sonuçlar verse de konu performans olduğunda makro vazgeçilmez oluyor. İkisinin kombinasyonunu yapalım. Aşağıdaki kod seçtiğiniz alana duruma göre formüllerin kendisini ya da formüllerin sonuçlarını getirebilir.

Kod


Option Explicit

Sub AlanaDonguKullanmadanFormulEkle()
    Application.ScreenUpdating = False
    
    With Sheets("tablo").Range("A1:K200000")
        .FormulaR1C1 = _
            "=IF(VLOOKUP(RC1,datagen!R1C1:R100000C11,1)=RC1, " & _
            "VLOOKUP(RC1,datagen!R1C1:R100000C11,2),""N/A"")"
        .Value = .Value
    End With
    
    Application.ScreenUpdating = True
End Sub

Kod (Açıklamalı)


Option Explicit

Sub AlanaDonguKullanmadanFormulEkle()
    '--------------------------------------------------
    'Ekran güncellemesini kapat.
    '--------------------------------------------------
    Application.ScreenUpdating = False
    
    '--------------------------------------------------
    'Düşeyara sonuçlarını "tablo" sayfasında
    'A1:K200000 arasında listele.
    '--------------------------------------------------
    With Sheets("tablo").Range("A1:K200000")
        
        '--------------------------------------------------
        'Formülü ayarladık.
        '--------------------------------------------------
        .FormulaR1C1 = _
            "=IF(VLOOKUP(RC1,datagen!R1C1:R100000C11,1)=RC1, " & _
            "VLOOKUP(RC1,datagen!R1C1:R100000C11,2),""N/A"")"
        
        '--------------------------------------------------
        'Formülün kendisini değil de değerlerini ekliyoruz.
        'Eğer aşağıdaki kodu iptal edersek formülün kendisi hücrelere eklenir.
        '--------------------------------------------------
        .Value = .Value
    End With
    
    '--------------------------------------------------
    'Sonuçları görmek için ekran
    'güncellemesini tekrardan aktifleştir.
    '--------------------------------------------------
    Application.ScreenUpdating = True
End Sub

Etiketler
microsoft excel açıklamalı içerik microsoft excel vba