Добавленная в Excel VBA функция не пересчитывает значения автоматически
Добрый день.
Возникла необходимость посчитать ячейки определённого цвета. В сети пишут, что такой функции нет и надо дописать её самому, используя VBA. Также приводится множество вариантов написания. Но ни один из них не пересчитывает значения автоматически, после изменения в диапазоне. Например, отмечено 3 из 10 ячеек, вводим формулу, указываем диапазон, цвет - результат 3. Но если я после этого убираю цвет у одной из ячеек или крашу ещё одну, результат всё ещё 3. Причём не помогает ни встать на ячейку с формулой и нажать <ENTER> ни F9. Пересчёт происходит только после того, как я кликаю по полю редактирования формулы и нажимаю <ENTER>. VBA, на котором я остановился: Код:
Function ColorFunction(rColor As Range, rRange As Range, Optional SUM As Boolean) Код:
Function ColorIndex(CellColor As Range) С этим можно что-то сделать или придётся жить с этим? |
Цитата:
Цитата:
|
В общем, как я понимаю, автоматически, как обычная формула, работать не будет...
Жаль... |
subuday77, будет. Но Вам-то сие чем поможет?! Событие пересчёта не возникает при форматировании ячеек, как бы Вы их не раскрашивали — данные-то никак не меняются.
Если Вы ответите на вопросы, заданные мною в предыдущем сообщении, возможно, я смогу Вам что-либо подсказать. |
Цитата:
Дано: Столбец с цифровыми данными, идущими в разнобой. Ячейка, в которой с помощью COUNTA подсчитанно общее количество занятых ячеек в столбце. После проверки данных (типа, солдатик сбегал и посмотрел - посчитал), проверенные данные выделяются зелёным. Задача: После того, как ячейка помечена, как проверенная, убрать её из общего подсчёта. Как-то так. Я предложил вариант решения через CELL. Но поскольку CELL c цветами напрямую не работает, приходится извращаться с форматами. Если есть что-то поизящнее, буду рад и благодарен за помощь. |
Я нашёл удовлетворительное решение.
С помощью условного форматирования и формулы =not(isnumber(A1)) я перекрашиваю значения в зелёный цвет, если они не номера. Пользователь проинструктирован, что для того, чтобы отметить ячейку, как проверенную, он должен перед номером поставить одиночную кавычку. Внизу подсчёт с помощью COUNTIF(range,"*") Работает. |
Время: 07:27. |
Время: 07:27.
© OSzone.net 2001-