İçinde formüller de olan alanı seçiyor, bu seçimi kopyaladıktan sonra PasteSpecial ile özel yapıştırıyor. PasteSpecial parametresinin Paste parametresini xlPasteValues olacak şekilde çalıştığında da hücredeki formüller gidiyor, yerine formül sonuçları, yani değerler, kalıyor.
Option Explicit
Sub FormulleriDegerlereDonustur()
Application.ScreenUpdating = False
Range("A1:A10").Select
Selection.Copy
Selection.PasteSpecial _
Paste:=xlPasteValues, _
Operation:=xlNone, _
SkipBlanks:=False, _
Transpose:=False
Range("A1").Select
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
Option Explicit
Sub FormulleriDegerlerDonustur()
'--------------------------------------------------
'Çalışma sayfasında yapılacak işlemler
'işlem bitene kadar görünmesin.
'Bunu gerçekleştirebilmek için
'ScreenUpdating özelliğini false yaptık.
'--------------------------------------------------
Application.ScreenUpdating = False
'--------------------------------------------------
'İlgili alanı seçtik.
'Bu alanda formüller de var.
'--------------------------------------------------
Range("A1:A10").Select
'--------------------------------------------------
'Seçilen alanı kopyaladık.
'--------------------------------------------------
Selection.Copy
'--------------------------------------------------
'Seçilmiş ve kopyalanmış alanı aynı yere
'geri yapıştıracağız ama özel yapıştır kullanacağız.
'Paste parametresi ayarını xlPasteValues yaptık.
'Bu sayede formüllerin çalıştıktan sonraki ürettiği
'sonuçlar yapıştırılacak ve formüller gidecek.
'--------------------------------------------------
Selection.PasteSpecial _
Paste:=xlPasteValues, _
Operation:=xlNone, _
SkipBlanks:=False, _
Transpose:=False
'--------------------------------------------------
'Alanın başına geri döndük.
'--------------------------------------------------
Range("A1").Select
'--------------------------------------------------
'Alan kopyalama işlemi yapıldığında
'o alanda dönen kesikli işaretli kopyalama
'kutusu kaldırılıyor ve aynı zamanda
'kopyalama işlemi de iptal olmuş oluyor.
'--------------------------------------------------
Application.CutCopyMode = False
'--------------------------------------------------
'İşlemler bittikten sonra ekran güncellemesi
'işlemini tekrardan aktifleştirdik. Böylelikle
'değişikliklerin son halini görebileceğiz.
'--------------------------------------------------
Application.ScreenUpdating = True
End Sub