进行更改时更新文本框值

时间:2019-04-10 09:53:19

标签: excel vba textbox

我使用下面的代码对空白且具有特定颜色的单元格进行计数。 然后,我将计数存储在文本框中。该代码工作正常,但我必须运行代码以更新文本框值。进行更改时,我需要文本框值进行更新。

提前发送!

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 :(得分:0)

您的第一步可能是调查Worksheet_Change()事件,但可能有另一种方法来处理此事件。您可以创建一个UDF(用户定义函数),该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的值链接到文本框。