Avatar billede qln Juniormester
10. oktober 2005 - 15:01 Der er 5 kommentarer og
1 løsning

Fjern ikke farvede rækker

Jeg har følgende makro, der fjerner de ikke farvede rækker i en liste.
Problemet er dog bare, at makroen ikke kun køres på listen, men på hele arket, hvorfor makroen bliver ved med at køre.
Hvad skal jeg skrive, så makroen kun køres på listen?

Public Sub FjernIkkeFarvede()
col = ActiveCell.Column
RowCount = Cells(65536, col).End(xlUp).Row
Range(Cells(1, col), Cells(65536, col).End(xlUp)).Select
For I = 1 To RowCount
If Cells(I, col).Interior.ColorIndex = xlNone Then
Cells(I, col).EntireRow.Delete Shift:=xlUp
I = I - 1
RowCount = RowCount - 1
End If
Next
End Sub
Avatar billede jpvj Nybegynder
10. oktober 2005 - 15:09 #1
Uden at være expert i hvordan excel fortolker VBA, så vil jeg gætte på, at problemet ligger i måden du kontrollerer din løkke:


For I = 1 To RowCount

I = I - 1
RowCount = RowCount - 1

Next

Mit bud er, at RowCount kun evalueres første gang forløkken startes, dvs. du ender med at I "står stille" og RowCount ikke påvirker afviklingen af løkken.

Det er i øvrigt lidt farligt at tælle ned på din counter i en for/next løkke. Du risikerer en uendelig løkke. Du kan tælle op eller bruge andre variable som flag i stedet.

/JP
Avatar billede qln Juniormester
10. oktober 2005 - 15:15 #2
Kan jeg ikke skrive noget, så løkken kun køres på den del af kolonnen, der står noget i.
Avatar billede qln Juniormester
10. oktober 2005 - 15:27 #3
Hvordan laver jeg en løkke, som bare skal tælle de første 1000 rækker igennem og tælle 1 op hver gang?
Avatar billede bak Forsker
10. oktober 2005 - 22:21 #4
Inden du kører makroen skal du markerer en celle i kolonnen

Public Sub FjernIkkeFarvede()
Dim col As Long
Dim RowCount As Long
Dim I As Long
  col = ActiveCell.Column
  RowCount = Cells(65536, col).End(xlUp).Row
  For I = RowCount To 1 Step -1
      If Cells(I, col).Interior.ColorIndex = xlNone Then
        Cells(I, col).EntireRow.Delete Shift:=xlUp
      End If
  Next
End Sub
Avatar billede qln Juniormester
17. oktober 2005 - 12:21 #5
Tak for det Bak - endnu engang.
Sender du et spørgsmål?
Avatar billede bak Forsker
17. oktober 2005 - 19:56 #6
Nope, men et svar :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

Seneste spørgsmål Seneste aktivitet
I går 21:00 Libre Office Impress Af Frank i Andre styresystemer
I går 11:47 VB script Af Jenshentze i Word
I går 11:21 Popup ved opstart Af mort1 i Windows
04/0918:50 Slet lokal konto Af ErikHg i Windows
04/0916:05 Ændre tal i en celle Af xvid i Excel