16. september 2004 - 16:01Der er
13 kommentarer og 1 løsning
Optimering af kode
Denne kode tager ca. 1 sekund (P4-2,4MHz). Kan hastigheden optimeres?
I = 1 If FlexServoErAktuel = 0 Or FlexServoErAktuel = 1 Then For I = I To 36 I2 = 1 Application.Goto reference:=("KORT" & I & "_ADR") If Not IsNumeric(ActiveCell.Value) Then ActiveCell.Offset(0, 11).Range("A1:AF1,A3:AF3").Select Selection.ClearContents
For I2 = I2 To 10 Application.Goto reference:=("KORT" & I & "_ADR") ActiveCell.Offset(1, I2).Range("A1").Select
If ActiveCell.Value <> "" Then TextIBoks = ActiveCell.Value Selection.ClearContents End If Next End If Next End If
Dim rg1 As Range, rg2 As Range I = 1 If FlexServoErAktuel = 0 Or FlexServoErAktuel = 1 Then For I = I To 36 I2 = 1 Set rg1 = Range("KORT" & I & "_ADR") If Not IsNumeric(rg1.Value) Then rg1.Offset(0, 11).Range("A1:AF1,A3:AF3").ClearContents For I2 = I2 To 10 Set rg2 = rg1.Offset(1, I2).Range("A1") If rg2.Value <> "" Then TextIBoks = rg2.Value rg2.ClearContents End If Next End If Next End If
Jeg forstår ikke lige grunden til at koden kører hurtigere da rg1 og rg2 stadig skal ind at berøre cellerne. Er Goto og Select langsomme funktioner? Et godt link til en side der beskriver noget om hastighed - fordele/ulemper ved forskellige funktioner?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.