Hirdetés

Keresés

Új hozzászólás Aktív témák

  • Mutt

    senior tag

    válasz T.Lacci #19775 üzenetére

    Hello,

    A makrót fel tudod gyorsítani a következőkkel:
    1. képérnyőfrissítés kikapcsolása (ScreenUpdating)
    2. események letiltása (EnableEvents)
    3. objektumok létrehozása (Set parancs)
    4. változók definiálása konkrét típussal (Variant mellőzése)
    5. beépített függvények használata (pl. Sum egy saját összegzés helyett)
    6. üres cellák ignorálása

    Egy 100 ezer darabos halmazon futtattam a különböző variációkat az eredmények:

    Könnyedén gyorsítható tehát az első 2 opcióval.
    Sub Szorzas()
    Dim tartomany As Range, cella As Range, szorzo As Double

    Set tartomany = Range("D2:D" & Range("D" & Rows.Count).End(xlUp).Row)

    Application.EnableEvents = False
    Application.ScreenUpdating = False

    For Each cella In tartomany
    'Feltételek megdása
    Select Case cella.Value
    Case 1 To 10000
    szorzo = 1.4
    Case 10001 To 20000
    szorzo = 1.3
    Case 20001 To 30000
    szorzo = 1.2
    Case Else
    szorzo = 0.9
    End Select

    'Szorzat beírása az E oszlopba
    Cells(cella.Row, "E") = cella.Value * szorzo
    Next

    Application.EnableEvents = True
    Application.ScreenUpdating = True

    End Sub

    A függvényest pedig a 19740-es hozzászólásban találod.

    üdv

Új hozzászólás Aktív témák