Formülleri Değerlere Dönüştür - Microsoft Excel


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

Kod


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

Kod (Açıklamalı)


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

Etiketler
microsoft excel açıklamalı içerik microsoft excel formül microsoft excel vba