Lassúság ügyben nem a makróddal van a gond (vagyis igen, de nem úgy).
Egy ekkora makró lefutása nem tud vészesen lassú lenni.
A probléma ott van, hogy minden egyes alkalommal amikor a kivánt függvényt beszúrod, az excel újraszámolja az érintett cella értékét. És ez már nagyon durván le tudja lassitani a kód lefutását, mert mielőtt a kód a következő sorra lépne, meg kell várja, hogy az excel kiszámolja az új cellaértékeket.
Meg lennél döbbenve, h. ez potenciálisan milyen sok időt vehet igénybe!
A megoldás a következő, a workbook tartalom számolást ki kell kapcsolni a kód elején és visszakapcsolni a kód végén. És ha már ott tartasz akkor a képernyő frissitést is.
Itt van hogyan, javaslom hogy MINDEN jövőbeli kódodba rakd ezt be:
Sub valami()
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
... ide jön a kódod
Application.Calculation = xlCalculationAutomatic
Application.screenupdating = true
End Sub