Обновлять значение текстового поля при внесении изменений

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

Ткс заранее!

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(), на этом сайте много вопросов по этой теме. Это то, что вы ищете.

Damian 10.04.2019 11:56
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
0
1
149
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Хотя в первую очередь вы можете изучить событие 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 15.04.2019 10:35

Пожалуйста, @Joris, если это ответило на ваш вопрос, рассмотрите возможность пометить ваш вопрос как отвеченный.

JvdV 15.04.2019 10:40

Здравствуйте @Joris, Вы отправили ответ, скопировав мой. См. этот связь, чтобы помочь вам. Что касается вашей проблемы: трудно судить, что не так, когда я не вижу ваших данных/макета.

JvdV 15.04.2019 14:18

Другие вопросы по теме