Я использую приведенный ниже код для подсчета ячеек, которые пусты и имеют определенный цвет. Затем я сохраняю счет в текстовом поле. Код работает нормально, но мне нужно запустить код для обновления значения текстового поля. Мне нужно, чтобы значение текстового поля обновлялось при внесении изменений.
Ткс заранее!
Sub CountBlankColors4()
Dim c As Range
Dim J As Integer
Dim ColorCount(100) As Long
ActiveSheet.Range("A1:K30").SpecialCells(xlCellTypeBlanks).Select
For Each c In Selection
With c.Interior
If .Pattern = xlSolid Then
If .TintAndShade = -0.249977111117893 Then
If IsEmpty(c) Then
ColorCount(.ColorIndex) = _
ColorCount(.ColorIndex) + 1
End If
End If
End If
End With
Next c
For J = 0 To 100
If ColorCount(J) > 0 Then
sTemp = ColorCount(J)
End If
Next J
TextBox1.Value = sTemp
End Sub
Хотя в первую очередь вы можете изучить событие Worksheet_Change()
, может быть и другой способ справиться с этим. Вы можете создать UDF (определяемую пользователем функцию), которую можно вызывать как обычную функцию в вашей книге. Например, ниже будет подсчитано количество ячеек в диапазоне, и оно будет обновляться при изменении чего-либо в этом диапазоне.
Public Function CountCells(RNG As Range) As Double
For Each CL In RNG
If IsEmpty(CL) = True Then
With CL.Interior
If .Pattern = xlSolid And .TintAndShade = -0.249977111117893 Then
CountCells = CountCells + 1
End If
End With
End If
Next CL
End Function
Вы можете связать значение C1
с текстовым полем.
Потрясающий! это именно то, что я искал!
Пожалуйста, @Joris, если это ответило на ваш вопрос, рассмотрите возможность пометить ваш вопрос как отвеченный.
Здравствуйте @Joris, Вы отправили ответ, скопировав мой. См. этот связь, чтобы помочь вам. Что касается вашей проблемы: трудно судить, что не так, когда я не вижу ваших данных/макета.
Следите за событием
Worksheet_Change()
, на этом сайте много вопросов по этой теме. Это то, что вы ищете.