Я пытаюсь разработать небольшой планировщик в Excel, чтобы немного лучше управлять своей жизнью. Я использую разные цвета ячеек для каждого события (желтый для работы, красный для университета и т. Д.). У меня уже есть макрос CountColor
, который подсчитывает появление цвета в определенном диапазоне, который работает нормально (я в значительной степени скопировал его из онлайн-решения). Теперь я использую макрос для вычисления использованного времени в ячейках, например:
![enter image description here](https://i.stack.imgur.com/9MGxn.png)
ячейки содержат =ColorCount(H5;B2:F15)
, тогда как внутренний цвет первого аргумента определяет цвет для подсчета, а параметр секунд - это диапазон для подсчета цвета. Этот макрос работает отлично. Последнее число - это сумма всех трех.
Однако сейчас я сталкиваюсь с проблемой, заключающейся в том, что изменение внутреннего цвета ячейки не приводит к пересчету формул. Я создал простую кнопку (не ActiveX) и назначил ей макрос:
Public Sub CalcButton_onclick()
Worksheets(1).Range("I13:I16").Calculate
End Sub
но когда я нажимаю кнопку (я также пытался пересчитать весь лист, используя Worksheets(1).Calculate
), ничего не происходит. Например, только когда я изменяю значение в ячейке, мое время пересчитывается. Макрос моей кнопки определенно выполнен, я проверил это, добавив Worksheets(1).Cells(20, 20).Value = "Test"
после вызова Calculate
, и он правильно изменил значение данной ячейки.
В целях завершения я также добавляю код макроса CountColor:
'counts the occurence of the interior color of rColor in rRange
Public Function ColorCount(ByRef rColor As Range, ByRef rRange As Range) As Integer
Dim rCell As Range
Dim lCol As Long
Dim vResult As Integer
vResult = 0
lCol = rColor.Interior.ColorIndex
For Each rCell In rRange
If rCell.Interior.ColorIndex = lCol Then
vResult = 1 + vResult
End If
Next rCell
ColorCount = vResult
End Function
Я не совсем уверен, в чем проблема, но я думаю, что, возможно, неправильно истолковал метод Calculate
. Я только создал 2 макроса выше. Я ценю любую помощь!
Кстати, что-то мета: это правильное использование картинки в вопросе? Я не мог придумать лучшего способа показать, как я хочу, чтобы мой вывод выглядел.