Pozdravljeni,
ti "uporabniki" pa zeres ne poznajo Excela. Moje mnenje je, da bi jim ga vseeno morali razložiti oz. da bi jim morali razložiti nemumnost njihovega početja. Pravzaprav, bi vam morali povedati, zakaj to potrebujejo; vi pa bi jim razložili zakaj ne potrebujejo
.
No ampak naloga je pa zanimiva. Vaša koda je nasploh počasna, ker delate s Selection, zato tega niti nisem poskušal. Sem pa poskušal sledeče
Koda: Izberi vse
Dim v, k
For v = 1 To 65536
For k = 1 To 256
Cells(v, k) = 0
Next
Next
In ta koda (bi) se na mojem računalniku izvajala cca. 20 minut (to sem izračunal iz rezultata izvajanja nad prvih 2000 vrstic)
Če to samo malce popravite, da Excel vmes ne počne drugih stvari
Koda: Izberi vse
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
.EnableEvents = False
End With
Dim v, k
For v = 1 To 65536
For k = 1 To 256
Cells(v, k) = 0
Next
Next
With Application
.EnableEvents = True
.Calculation = xlCalculationAutomatic
.ScreenUpdating = True
End With
Ta koda se na mojem računalniku izvaja 4 minute ==> tako 5xPOHITRITEV!
Potem pa grem še korak dalje
Koda: Izberi vse
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
.EnableEvents = False
End With
Dim vrstica(1 To 256)
Dim k
For k = 1 To 256
vrstica(k) = 12
Next
For k = 1 To 65536
Rows(k) = vrstica
Next
With Application
.EnableEvents = True
.Calculation = xlCalculationAutomatic
.ScreenUpdating = True
End With
Ta koda se na mojem računalniku izvaja 40 sekund ==> tako 36xPOHITRITEV!
To je to
.