Formu³y i odwo³ania.
W poprzednich artyku³ach dowiedzieli¶my siê jak wpisywaæ ró¿ne typy danych do komórek oraz jak je formatowaæ. Jak zapisywaæ obszary kiedy nie wiemy co ma byæ tam wpisane i czyni to dopiero makro w czasie pracy. Jednak jak wpisywaæ formu³y do komórek. Nie jest to nic trudnego i ³atwo zrozumieæ zasadê wpisywania formu³ odwo³uj±cych siê do innych komórek na podstawie prostych przyk³adów.
Za³ó¿my, ¿e w polu E4 mamy wpisana liczbê 2 i chcemy, aby w nastêpnym polu pojawi³ siê wynik jej mno¿enia przez 2, jednak nie wiemy jaka liczba jest w E4 i co teraz. Musimy wpisaæ odpowiedni± formu³ê, która bêdzie siê odwo³ywa³a do danego pola.
1 2 3 4
| Range("F4").Select ActiveCell.FormulaR1C1 = "=RC[-1]*2"
|
W komórce po prawej wpisujemy odwo³anie do komórki le¿±cej w poprzedniej kolumnie i mno¿ymy tamt± warto¶æ *2. R oznacza wiersz, do którego siê odwo³ujemy a C do kolumny, przyjmuj± one domy¶lnie warto¶æ zgodn± z aktualnie zaznaczon± komórk±, jednak obok C znajduje siê, w [-1], co sprawia, ¿e je¶li aktualna komórka to F4 to odwo³anie F[-1]4 (UWAGA, zauwa¿, ¿e przy takim okre¶laniu zmienia siê kolejno¶æ) wygl±da w ostatecznej formie E4, czyli do komórki, w której wpisana jest jaka¶ liczba.
Aby u³atwiæ zrozumienie dzia³ania odwo³añ zaprezentuje tu jeszcze jeden prosty przyk³ad.
1 2 3 4 5 6 7 8
| Range("E5").Select ActiveCell.FormulaR1C1 = "=R[-1]C*3" Range("D4").Select ActiveCell.FormulaR1C1 = "=RC[1]*4" Range("E3").Select ActiveCell.FormulaR1C1 = "=R[1]C*5"
|
Spowoduje to, ¿e w komórce poni¿ej pojawi siê wynik mno¿enia podanej liczby *3. W komórce poprzedzaj±cej pojawi siê wynik mno¿enia podanej liczby *4. Powy¿ej pojawi siê wynik mno¿enia podanej liczby *5.
Mo¿na u¿ywaæ równie¿ specjalnych funkcji np. LICZ.JE¯ELI Bêdzie to wygl±daæ nastêpuj±co
1 2 3 4
| Range("H4").Select ActiveCell.FormulaR1C1 = "=COUNTIF(RC[-4]:RC[-2],2)"
|
W komórce H4 pojawi siê liczba informuj±ca o ilo¶ci wystêpowania liczby 2. Zauwa¿ jak podajemy zakres, wybieramy 2 graniczne komórki w taki sam sposób jak przy odwo³aniu.
|