Ed stillede denne uges Excel-spørgsmål.
Jeg har brug for en simpel Excel-makro, der vil søge - lad os sige - Kolonne C og fremhæve rødt de celler, der indeholder dagens dato (nuværende dato) og fremhæve gule andre celler i kolonnen, der er 15 dage i fremtiden fra dagens dato?
Brugere af Excel 97 eller Excel 2000 kan drage fordel af den nye mulighed for betinget formatering. Lad os dække, hvordan man gør dette manuelt uden en makro først.
- Gå til celle C1.
- Vælg Format, Betinget format i menuen
- I venstre side af dialogen skal du ændre rullemenuen for at læse "Formel er"
- I højre side af dialogboksen skal du indtaste:
=INT(C1)=TODAY()
- Klik på format, klik på mønstre, vælg rødt. Klik på OK
- Klik på Tilføj …
- I venstre side af dialogen skal du ændre rullemenuen for at læse "Formel er"
- I højre side af dialogboksen skal du indtaste:
=AND(INT(C1)>TODAY(),(INT(C1)-TODAY())<16)
- Klik på Format, klik på mønstre, vælg gul. Klik på OK.
- Klik på OK for at afslutte tildelingen af dette betingede format til celle C1.
Hvis formatet er indtastet korrekt, ændres celle C1 til rødt, hvis den indeholder dagens dato og til gul, hvis datoen er inden for de næste 15 uger. Funktionen I DAG () i formatet vil sikre, at hvis vi åbner projektmappen en anden dag, vil den markere cellerne for den pågældende dag med rødt.
Du kan nu kopiere celle C1, fremhæve alle data i kolonne C og gøre Rediger> Indsæt speciel> Formater> OK for at anvende dette format på hver celle i kolonne C.
Følgende makro automatiserer tildeling af det betingede format:
Sub Macro2() Range("C1").Select Selection.FormatConditions.Delete Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _ "=INT(C1)=TODAY()" Selection.FormatConditions(1).Interior.ColorIndex = 3 Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _ "=AND(INT(C1)>TODAY(),(INT(C1)-TODAY())<16)" Selection.FormatConditions(2).Interior.ColorIndex = 6 Selection.Copy FinalRow = Range("C15000").End(xlUp).Row Range("C2:C" & FinalRow).Select Selection.PasteSpecial Paste:=xlPasteFormats End Sub
For brugere af Excel 95 har du ikke betinget formatering, men du kan bruge en makro som denne:
Sub Macro95() ThisDate = Date FinalRow = Range("C15000").End(xlUp).Row For x = 1 To FinalRow ThisCell = Int(Range("C" & x).Value) If ThisCell = ThisDate Then Range("C" & x).Interior.ColorIndex = 3 Else DaysFromNow = ThisCell - ThisDate If DaysFromNow> 0 And DaysFromNow < 16 Then Range("C" & x).Interior.ColorIndex = 6 End If End If Next x End Sub
Formelfunktionen i den betingede formatfunktion er meget kraftig og giver dig mulighed for at fremhæve celler, der passer til forskellige kriterier.