17. januar 2002 - 10:24Der er
4 kommentarer og 2 løsninger
For-next eller anden løkke der virker
Jeg har et regneark hvor jeg skal have udført en kopiering op til 25 gange. Jeg har skrevet følgende kode, men problemet er, at kommandoen kun udføres én gang, d.v.s. Next sætningen udføres ikke.
Dim iTæller As Integer
For iTæller = 1 To 25 Range(\"A1\").Select If Range(\"A1\").Value <= 0 Then Range(\"B1\").Select Selection.Copy Range(\"H1\").Select ActiveSheet.Paste Else Range(\"A1\").Select Selection.Copy Range(\"H1\").Select ActiveSheet.Paste End If
For-next løkken udføres korrekt. Problemet er, at koden inden i løkken udføres ens hver gang. Du udfører altså præcis de samme ting 25 gange. Det går bare så hurtigt, at du ikke når at opdage det.
For at det skal virke, må koden inden i løkken gøres dynamisk. I stedet for at du fx markerer celle A1 hver gang, formoder jeg, at du gerne vil have markeret celle A1, derefter A2, A3 osv. Det kan du ændre ved at rette:
Range(\"A1\").Select til Cells(iTæller,1).Select Range(\"A1\").Value til Cells(iTæller,1).Value Range(\"B1\").Value til Cells(iTæller,2).Value Range(\"H1\").Value til Cells(iTæller,8).Value
Jeg ville lave den således, så du ingen Select, Copy eller Paste har de sænker hastigheden på koden
Dim iTæller As Integer
For iTæller = 1 To 25 If Range("A" & iTæller).Value <= 0 Then Range("H" & iTæller).Value = Range("B" & iTæller).Value Else Range("H" & iTæller).Value = Range("A" & iTæller).Value End If Next
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.
Følg dette spørgsmålOpretPreview
Flere spørgsmål fra Office & Kontorpakker kategorien