我想知道如何根据值更改值或文本框的颜色。例如,如果获得“F”我希望此值在用户表单上以任何方式转为RED或文本框。
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
End Sub
答案 0 :(得分:1)
将TextBox的颜色更改为红色:
UserForm1.TextBox1.BackColor = RGB(255,0,0)
将TextBox的文本颜色更改为红色:
UserForm1.TextBox1.ForeColor = RGB(255,0,0)
更新:完整解决方案(假设 txtPuntuacion 是TextBox):
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