14. juni 2006 - 16:47Der er
4 kommentarer og 1 løsning
Forklaring til macro
Jeg ved at nedenstående sammenligner celler i kolonne G og I og farver teksten efter hvorstor diff. er i forhold til hinanden. Men jeg ønsker en nærmere forklaring til de enkelte linier:
Dim C As Range Range("G2").Select Range(Selection, Selection.End(xlDown)).Select For Each C In Selection.Cells If C.Value > C.Offset(0, 2).Value Then C.Offset(0, 2).Font.ColorIndex = 3 ElseIf (C.Value + (C.Value / 10)) <= C.Offset(0, 2).Value Then C.Offset(0, 2).Font.ColorIndex = 5 Else C.Offset(0, 2).Font.ColorIndex = 1 End If Next Range("A1").Select
Prøv at debugge (F8) så du kører koden én linie ad gangen. Du kan se hvad der sker på arket og når du lader musen hvile på en variabel i koden kan du se hvilken værdi den er tildelt. Sammenholdt kan du regne ud hvad der foregår.
Sub test() Dim C As Range 'marker celle G2 Range("G2").Select 'Marker fra G2 til første tomme celle i kolonne G Range(Selection, Selection.End(xlDown)).Select 'for hver celle i markeringen gør..... For Each C In Selection.Cells 'hvis cellen er større end den i samme række i kolonne I så.. If C.Value > C.Offset(0, 2).Value Then 'farv cellen i kolonne I med farve 3 C.Offset(0, 2).Font.ColorIndex = 3 'ellers hvis cellen + 10% er mindre end cellen i kol. I, så... ElseIf (C.Value + (C.Value / 10)) <= C.Offset(0, 2).Value Then 'farv celleen i kol. I med farve 5 C.Offset(0, 2).Font.ColorIndex = 5 Else 'hvis inden af de to førstnævne er sand så farv cellen i kol I med farve 1 C.Offset(0, 2).Font.ColorIndex = 1 End If Next Range("A1").Select End Sub
Tak bak. Mit problem er nemlig, at nogle celler i kol. I farves '3' selvom cellen i kol. G er = cellen i kol. I. Så jeg var bange for, at der skulle være noget i vejen med koden.
NB. cellen i kol. G er = cellen i kol. E eller cellen i kol. E*1,25 med 2 decimaler kol. E kommer fra en *.txt hvor der kun trækkes 2 decimaler med over.
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.