Hızlı ve Etkili Kodlama

Bu bölümde VBA’nın daha hızlı ve etkili çalışması için yapılması gerekenleri inceleyeceğiz.
Aşağıdaki kod ile VBA yavaş çalışır. Bunun sebebi, VBA her hücre için yazılan değeri gösterebilir ve sayfayı silmek istersek bize gereksiz yere onay kutusu gösterir.

Sub Yavas()

    Dim ShYeni As Worksheet
    Dim hucre As Range
    
    Application.StatusBar = "Bekleyin"
    
    Set ShYeni = Worksheets.Add
    
    For Each hucre In ShYeni.Range("A1:Z99999")
        hucre.Value = 99
    Next hucre

    ShYeni.Delete
    Sayfa1.Select
    
    Application.StatusBar = ""

End Sub

Aşağıdaki kod ile VBA hızlı çalışır. ScreenUpdating ile değer yapıştırma işlemini izlememize gerek kalmaz. DisplayAlerts ile gereksiz bir uyarı almamıza gerek kalmaz. Calculation ile işlem sırasında VBA’nın hesaplama yapmasına gerek kalmaz.

Sub Hizli()

    Dim ShYeni As Worksheet
    Dim hucre As Range
    
    'bazı özellikleri kapat
    With Application
        .StatusBar = "Bekleyin"
        .ScreenUpdating = False
        .DisplayAlerts = False
        .Calculation = xlCalculationManual
    End With

    Set ShYeni = Worksheets.Add
    
    For Each hucre In ShYeni.Range("A1:Z99999")
        hucre.Value = 99
    Next hucre
    
    ShYeni.Delete
    Sayfa1.Select
    
    'özellikleri tekrar aç
    With Application
        .StatusBar = ""
        .ScreenUpdating = True
        .DisplayAlerts = True
        .Calculation = xlCalculationAutomatic
        'kopyala ve yapıştır özel yöntemlerini kullandıysanız, panoda çok fazla veriniz olabilir.
        .CutCopyMode = False
    End With

End Sub

Yayımlandı

kategorisi

yazarı:

Etiketler: