Ed je ta teden vprašal Excel vprašanje.
Potrebujem preprost Excelov makro, ki bo iskal - recimo - Stolpec C in označil rdeče celice, ki vsebujejo današnji datum (trenutni datum), in označil rumeno katero koli drugo celico v stolpcu, ki je od današnjega datuma 15 dni v prihodnosti?
Uporabniki Excel 97 ali Excel 2000 lahko izkoristijo novo možnost pogojnega oblikovanja. Poglejmo, kako to narediti ročno brez makra.
- Premakni se v celico C1.
- V meniju izberite Oblika, Pogojna oblika
- Na levi strani pogovornega okna spremenite spustni meni in preberite "Formula je"
- Na desni strani pogovornega okna vnesite:
=INT(C1)=TODAY()

- Kliknite obliko, kliknite Vzorci, izberite Rdeča. Kliknite V redu
- Kliknite Dodaj…
- Na levi strani pogovornega okna spremenite spustni meni in preberite "Formula je"
- Na desni strani pogovornega okna vnesite:
=AND(INT(C1)>TODAY(),(INT(C1)-TODAY())<16)
- Kliknite Format, kliknite Patterns, Pick Yellow. Kliknite V redu.
- Kliknite V redu, da končate dodeljevanje tega pogojnega formata celici C1.

Če je oblika pravilno vnesena, se celica C1 spremeni v rdečo, če vsebuje današnji datum, in v rumeno, če je datum v naslednjih 15 tednih. Funkcija TODAY () v formatu bo zagotovila, da če bomo delovni zvezek odprli drug dan, bo rdeče označila celice za ta dan.
Zdaj lahko kopirate celico C1, označite vse podatke v stolpcu C in naredite Uredi> Posebno lepljenje> Oblike> V redu, da to obliko uporabite za vsako celico v stolpcu C.
Naslednji makro bo avtomatiziral dodeljevanje pogojne oblike:
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
Za uporabnike programa Excel 95 nimate pogojnega oblikovanja, lahko pa uporabite takšen makro:
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
Funkcija formule funkcije pogojnega oblikovanja je zelo zmogljiva in vam omogoča, da označite celice, ki ustrezajo različnim merilom.