Значения Excel не обновляются - PullRequest
0 голосов
/ 12 сентября 2011

Я сделал функцию в VBA для Excel, которая подсчитывает количество ячеек определенного цвета в диапазоне, основываясь на другой ячейке. Это отлично работает при первом запуске функции, однако при изменении цвета одной из ячеек в диапазоне на или от подсчитываемого цвета значение не обновляется. Как получить, чтобы функция постоянно обновлялась всякий раз, когда я меняю цвет? Расчеты в рабочей книге установлены автоматически.

Function CountColor(rSumRange As Range)

Dim rCell As Range
Dim iCol As Integer
Dim vResult

iCol = Range("P1").Interior.ColorIndex
For Each rCell In rSumRange
    If rCell.Interior.ColorIndex = iCol Then
         vResult = vResult + 1
    End If
    Next rCell

CountColor = vResult
End Function

Ответы [ 2 ]

3 голосов
/ 12 сентября 2011

Изменение цвета не вызывает Worksheet_Change() и не вызывает Application.Calculate.

Если в вашей книге не слишком много формул, вы можете попробовать это громоздкий решение:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Application.Calculate
End Sub
1 голос
/ 12 сентября 2011

Это будет происходить за счет некоторой производительности, но вы можете добавить «Application.Volatile» в коде, который сделает его таким, чтобы при каждом изменении в рабочем листе он пересчитывался.

Ref: http://msdn.microsoft.com/en-us/library/aa213653(v=office.11).aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...