|
Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2013 - Добавленная в Excel VBA функция не пересчитывает значения автоматически |
|
2013 - Добавленная в Excel VBA функция не пересчитывает значения автоматически
|
Новый участник Сообщения: 46 |
Добрый день.
Возникла необходимость посчитать ячейки определённого цвета. В сети пишут, что такой функции нет и надо дописать её самому, используя VBA. Также приводится множество вариантов написания. Но ни один из них не пересчитывает значения автоматически, после изменения в диапазоне. Например, отмечено 3 из 10 ячеек, вводим формулу, указываем диапазон, цвет - результат 3. Но если я после этого убираю цвет у одной из ячеек или крашу ещё одну, результат всё ещё 3. Причём не помогает ни встать на ячейку с формулой и нажать <ENTER> ни F9. Пересчёт происходит только после того, как я кликаю по полю редактирования формулы и нажимаю <ENTER>. VBA, на котором я остановился: Function ColorFunction(rColor As Range, rRange As Range, Optional SUM As Boolean) Dim rCell As Range Dim lCol As Long Dim vResult lCol = rColor.Interior.ColorIndex If SUM = True Then For Each rCell In rRange If rCell.Interior.ColorIndex = lCol Then vResult = WorksheetFunction.SUM(rCell, vResult) End If Next rCell Else For Each rCell In rRange If rCell.Interior.ColorIndex = lCol Then vResult = 1 + vResult End If Next rCell End If ColorFunction = vResult End Function Function ColorIndex(CellColor As Range) ColorIndex = CellColor.Interior.ColorIndex End Function С этим можно что-то сделать или придётся жить с этим? |
|
Отправлено: 17:06, 14-10-2018 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата subuday77:
Цитата subuday77:
|
||
Отправлено: 18:22, 14-10-2018 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 46
|
Профиль | Отправить PM | Цитировать В общем, как я понимаю, автоматически, как обычная формула, работать не будет...
Жаль... |
Отправлено: 19:24, 14-10-2018 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать subuday77, будет. Но Вам-то сие чем поможет?! Событие пересчёта не возникает при форматировании ячеек, как бы Вы их не раскрашивали — данные-то никак не меняются.
Если Вы ответите на вопросы, заданные мною в предыдущем сообщении, возможно, я смогу Вам что-либо подсказать. |
Отправлено: 23:37, 14-10-2018 | #4 |
Новый участник Сообщения: 46
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Дано: Столбец с цифровыми данными, идущими в разнобой. Ячейка, в которой с помощью COUNTA подсчитанно общее количество занятых ячеек в столбце. После проверки данных (типа, солдатик сбегал и посмотрел - посчитал), проверенные данные выделяются зелёным. Задача: После того, как ячейка помечена, как проверенная, убрать её из общего подсчёта. Как-то так. Я предложил вариант решения через CELL. Но поскольку CELL c цветами напрямую не работает, приходится извращаться с форматами. Если есть что-то поизящнее, буду рад и благодарен за помощь. |
||
Отправлено: 09:16, 15-10-2018 | #5 |
Новый участник Сообщения: 46
|
Профиль | Отправить PM | Цитировать Я нашёл удовлетворительное решение.
С помощью условного форматирования и формулы =not(isnumber(A1)) я перекрашиваю значения в зелёный цвет, если они не номера. Пользователь проинструктирован, что для того, чтобы отметить ячейку, как проверенную, он должен перед номером поставить одиночную кавычку. Внизу подсчёт с помощью COUNTIF(range,"*") Работает. |
Отправлено: 10:10, 15-10-2018 | #6 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
2013 - Функция, возвращающая три значения | Invincible | Microsoft Office (Word, Excel, Outlook и т.д.) | 3 | 07-12-2016 03:35 | |
VBA - [решено] VBA в EXCEL не освобождается память | navuhodonosor | Программирование и базы данных | 5 | 12-08-2013 00:45 | |
Разное - Задача Excel VBA | JON4 | Microsoft Office (Word, Excel, Outlook и т.д.) | 8 | 12-12-2010 18:40 |
|