Fremhev forfallsdatoer - Excel-tips

Ed stilte ukens Excel-spørsmål.

Jeg trenger en enkel Excel-makro som vil søke - la oss si - Kolonne C og markere røde cellene som inneholder dagens dato (nåværende dato) og markere gule andre celler i kolonnen som er 15 dager i fremtiden fra dagens dato?

Brukere av Excel 97 eller Excel 2000 kan dra nytte av det nye alternativet Betinget formatering. La oss dekke hvordan du gjør dette manuelt uten en makro først.

  • Gå til celle C1.
  • Velg Format, Betinget format fra menyen
  • I venstre side av dialogen endrer du rullegardinmenyen for å lese "Formel er"
  • På høyre side av dialogboksen skriver du inn: =INT(C1)=TODAY()
Angi betinget formatering
  • Klikk format, Klikk mønstre, velg Rød. Klikk OK
  • Klikk på Legg til …
  • I venstre side av dialogen endrer du rullegardinmenyen for å lese "Formel er"
  • På høyre side av dialogboksen skriver du inn: =AND(INT(C1)>TODAY(),(INT(C1)-TODAY())<16)
  • Klikk Format, Klikk Mønstre, Velg gult. Klikk OK.
  • Klikk OK for å fullføre tildelingen av dette betingede formatet til celle C1.
Resultat av betinget format

Hvis formatet er angitt riktig, vil celle C1 endres til rødt hvis den inneholder dagens dato og til gul hvis datoen er de neste 15 ukene. TODAY () -funksjonen i formatet vil sikre at hvis vi åpner arbeidsboken en annen dag, vil den markere rødt cellene for den aktuelle dagen.

Du kan nå kopiere celle C1, markere alle dataene i kolonne C og gjøre Rediger> Lim inn spesial> Formater> OK for å bruke det formatet på hver celle i kolonne C.

Følgende makro automatiserer tildeling av betinget 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 brukere av Excel 95 har du ikke betinget formatering, men du kan bruke 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

Formelfunksjonen til den betingede formatfunksjonen er veldig kraftig og lar deg markere celler som passer til forskjellige kriterier.

Interessante artikler...