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.
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
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