【问题标题】:Excel VBA Change Color Of value on USERFORMExcel VBA更改USERFORM上值的颜色
【发布时间】:2014-02-21 13:26:23
【问题描述】:

我想知道如何根据值更改值或文本框的颜色。例如,如果获取“F”我希望这个值变成红色或用户表单上的文本框。

Here is a example of where i want to use it or how i would like to use it.

谢谢你。

Private Sub cmdAceptar_click()
Dim n1 As Double, n2 As Double, n3 As Double, n4 As Double
Dim promedio As Integer

n1 = Val(txtn1): n2 = Val(txtn2)
n3 = Val(txtn3): n4 = Val(txtn4)
promedio = CInt((n1 + n2 + n3 + n4) / 4)
txtPromedio = Str(promedio)

If promedio >= 90 And promedio <= 100 Then
    txtPuntuacion = "A"
ElseIf promedio >= 80 And promedio <= 89 Then
    txtPuntuacion = "B"
ElseIf promedio >= 70 And promedio <= 79 Then
    txtPuntuacion = "C"
ElseIf promedio >= 60 And promedio <= 69 Then
    txtPuntuacion = "D"
ElseIf promedio >= 0 And promedio <= 59 Then
    txtPuntuacion = "F"
Else: MsgBox "Error de datos", vbCritical, "Mensaje"
End If

结束子

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    将文本框的颜色更改为红色:

    UserForm1.TextBox1.BackColor = RGB(255,0,0)
    

    将文本框的文本颜色更改为红色:

    UserForm1.TextBox1.ForeColor = RGB(255,0,0)
    

    更新:完整解决方案(假设 txtPuntuacion 是文本框):

    Private Sub cmdAceptar_click()
        Dim n1 As Double, n2 As Double, n3 As Double, n4 As Double
        Dim promedio As Integer
        Dim sGrade As String
    
        n1 = Val(txtn1): n2 = Val(txtn2)
        n3 = Val(txtn3): n4 = Val(txtn4)
        promedio = CInt((n1 + n2 + n3 + n4) / 4)
        txtPromedio = Str(promedio)
    
        Select Case promedio
            Case 90 To 100: sGrade = "A"
            Case 80 To 89:  sGrade = "B"
            Case 70 To 79:  sGrade = "C"
            Case 60 To 69:  sGrade = "D"
            Case 0 To 59:   sGrade = "F"
            Case Else
                MsgBox "Error de datos", vbCritical, "Mensaje"
                Exit Sub
        End Select
        txtPuntuacion.Value = sGrade
        If sGrade = "F" Then
            txtPuntuacion.ForeColor = RGB(255, 0, 0)
        Else
            txtPuntuacion.ForeColor = RGB(0, 0, 0)
        End If
    End Sub
    

    【讨论】:

    • 谢谢帕特里克,但这个解决方案是永久性的,我希望如果得到一些值(如“F”)变成红色但如果得到其他值(如“B”)保持黑色跨度>
    • 我纯粹是为您指出更改文本框/文本颜色的方向。为txtPuntuacion 添加另一个If 块以在黑色/红色之间切换。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-19
    • 1970-01-01
    • 2016-01-13
    • 2017-11-19
    • 2018-10-17
    • 2018-11-03
    • 2020-02-12
    相关资源
    最近更新 更多