Lenže ty si si sem neprišiel po radu, ale po hotové riešenie. Tvoje zadanie je tak komplikované, že som to nepochopil ani po dvoch prečítaniach. Ale vidím, že potrebuješ zreťaziť 500 buniek, a to už zaváňa buď chybou v návrhu alebo zvolením nevhodného nástroja.
K otázke, ako sa líši manuálne zadané FALSE od FALSE, ktoré je výsledkom vzorca: Nijako. Môžeš si to jednoducho vyskúšať tak, že do A1 napíšeš "FALSE", do B1 napíšeš "=FALSE" a do C1 napíšeš "=A1=B1" - výsledkom bude "TRUE".
K úprave funkcie: Sprav tú zmenu postupne, keď to nevieš naraz. Najprv doplň riadok, v ktorom sa testuje hodnota bunky, o kontrolu voči False:
... And cell.Value <> False
A potom si to môžeš vytiahnuť do parametra (použiješ typ Variant), to už nebude nič ťažké.Ináč neviem, odkiaľ sa ti tam to FALSE nabralo, ale mohol by si ho nahradiť za prázdny reťazec a nemusel by si riešiť to, s čím teraz nevieš pohnúť.
Nakoniec zopár postrehov k tvojim vzorcom. Keď máš vzorec v tvare "=IF(NejakyVyraz;FALSE;TRUE)", tak to je to isté ako "=NOT(NejakyVyraz)". Podobne vzorec "=IF(NejakyVyraz;TRUE)" je ekvivalent "=NejakyVyraz". Keď si toto uvedomíš, tak tvoje vzorce sa podstatne zjednodušia.