Ed esitti tämän viikon Excel-kysymyksen.
Tarvitsen yksinkertaisen Excel-makron, joka etsii - sanotaan - sarake C ja korostaa punaiset solut, jotka sisältävät tämän päivän päivämäärän (nykyisen päivämäärän) ja korostavat keltaisen minkä tahansa muun sarakkeen solun, joka on 15 päivää myöhemmin tulevasta päivästä?
Excel 97: n tai Excel 2000: n käyttäjät voivat hyödyntää uutta Ehdollinen muotoilu -vaihtoehtoa. Selvitetään, miten tämä tehdään manuaalisesti ilman makroa.
- Siirry soluun C1.
- Valitse valikosta Muoto, Ehdollinen muoto
- Muuta valintaikkunan vasemmalla puolella olevaa avattavaa valikkoa lukemaan "Kaava on"
- Kirjoita valintaikkunan oikeaan reunaan:
=INT(C1)=TODAY()

- Napsauta muoto, napsauta mallit, valitse punainen. Napsauta OK
- Napsauta Lisää…
- Muuta valintaikkunan vasemmalla puolella olevaa avattavaa valikkoa lukemaan "Kaava on"
- Kirjoita valintaikkunan oikeaan reunaan:
=AND(INT(C1)>TODAY(),(INT(C1)-TODAY())<16)
- Napsauta Muotoile, valitse mallit, valitse keltainen. Napsauta OK.
- Viimeistele tämän ehdollisen muodon määrittäminen solulle C1 valitsemalla OK.

Jos muoto syötetään oikein, solu C1 muuttuu punaiseksi, jos se sisältää tämän päivän päivämäärän, ja keltaiseksi, jos päivämäärä on seuraavan 15 viikon aikana. TODAY () -funktio muodossa varmistaa, että jos avamme työkirjan toisena päivänä, se korostaa punaisella kyseisen päivän soluja.
Voit nyt kopioida solun C1, korostaa kaikki sarakkeessa C olevat tiedot ja tehdä muokkauksen> Liitä erityinen> Muotot> OK, jos haluat käyttää kyseistä muotoa sarakkeen C jokaisessa solussa.
Seuraava makro automatisoi ehdollisen muodon määrittämisen:
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
Excel 95 -käyttäjillä sinulla ei ole ehdollista muotoilua, mutta voit käyttää tällaista makroa:
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
Ehdollisen muotoilutoiminnon kaavaominaisuus on erittäin tehokas ja antaa sinun korostaa eri kriteereihin sopivia soluja.