введите описание изображения здесь
Я работаю над программой VBA. Я создал функцию, которая подсчитывает количество предметов, которые соответствуют определенному результату (размер «Большой» и пищевой «Овощной»). Функция помогает подсчитать количество элементов, которые соответствуют требованию, и изменяется, когда я фильтрую по классу (например, у p1 есть 1 овощ, он показывает 1).
Function Count_items_Small_Veg() As Long
Dim i As Long
Dim r As Range
Dim wsCheck As Worksheet
Dim n As Integer
Application.Volatile
Set wsCheck = Application.Caller.Parent
For Each r In wsCheck.AutoFilter.Range.Columns(Col_Western).Cells
If wsCheck.Cells(r.Row, Col_Starter) = "S" And _
wsCheck.Cells(r.Row, Col_Dessert) = "VEGETARIAN" And r.EntireRow.Hidden = False Then
i = i + 1
End If
Next r
Count_items_Small_Veg = i
End Function
Я хочу, чтобы программа изменила ячейку, в которой значение числа было серым, когда оно достигает нуля, когда я фильтрую результат. Например, я фильтрую в соответствии с P2 и 0 ордерами для Large Veg. Должно быть серым
Серая ячейка - желаемый результат, когда значение ячейки равно 0
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ChangeRng As Range
Set ChangeRng = ActiveSheet.Range("A5:G6")
Application.Volatile
For Each cell In ChangRng
If cell.Value = 0 Then
cell.Interior.ColorIndex = 16
End If
End Sub