jpvj> Upps - den med række 2 havde jeg overset... Mht. at bruge With/End With er det et performance spørgsmål - har mest af alt noget at gøre med nogle gode vaner, da der her naturligvis ikke er tale om en kørselstid af betydning. En god hovedregel er at bruge With/End With når du skal "tilgå" et objekt mere end en gang. I ovenstående gør vi det (i din kode) 14 gange.
Og hvis man ikke gider indtaste antal rækker : --------------- Sub sletrakker() Dim a As Integer a = (1 + (InStr(1, ActiveSheet.UsedRange.Address(ReferenceStyle:=xlR1C1, _ RowAbsolute:=False, RelativeTo:=Cells(1, 1)), "]"))) With ThisWorkbook.ActiveSheet For b = 2 To a .Rows(b).Delete Next End With End Sub
Så i virkeligheden skal man jo dele slut variablen i for-next løkken med 2 :-)
slo> Performance? Nu ved jeg ikke hvordan VB bliver fortolket/jit kompileret, så jg har ingen forudsætninger for at udtale mig om emnet. Hvis du mener at man opnår en bedre performance, kan du så ikke lige smide et link til noget dokumentation? Er da lidt nysgerrig...
jpvj -> Excel's indbyggede hjælp er bare ét sted du kan se det - flg. er fra "Brug af With-sætninger" : "Med sætningen With kan du angive et objekt eller en brugerdefineret type én gang for en hel række sætninger. With-sætninger bevirker, at procedurerne afspilles hurtigere, og at du undgår gentagne indtastninger." og lidt senere på samme hjælpeside: "Du kan indlejre With-sætninger for at opnå større effektivitet."
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.