Обновить значение текстового поля после внесения изменений - PullRequest
0 голосов
/ 10 апреля 2019

Я использую код ниже для подсчета ячеек, которые не заполнены и имеют определенный цвет.Затем я сохраняю счет в текстовом поле.Код работает нормально, но мне нужно запустить код для значения текстового поля для обновления.Мне нужно значение текстового поля для обновления при внесении изменений.

Tx заранее!

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

1 Ответ

0 голосов
/ 10 апреля 2019

Хотя первым делом вы можете посмотреть на событие 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

enter image description here

Вы можете связать значениеC1 в текстовое поле.

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