我希望在给定条件的情况下将表单的背景设置为十六进制值。
Private Sub Form_Load()
If Not IsNull(Me.SeparationDate) Then Me.Detail.BackColor = Val("&H" & "ff1111")
End Sub
问题是在这种情况下,我的背景变成了深蓝色,而不是红色。
答案 0 :(得分:2)
该值必须为GBR
&H1111ff
还有一个RGB()
函数
RGB(255,17,17) 'Same as &H1111ff
说你有
s = "ff1111"
那你就可以做
Me.Detail.BackColor = RGB("&H" & Left$(s, 2), _
"&H" & Mid$(s, 3, 2), _
"&H" & Right$(s, 2))
或者简单地
Me.Detail.BackColor = "&H" & Right$(s, 2) & Mid$(s, 3, 2) & Left$(s, 2)
根据@MathieuGuindon的说法,Val
功能不是必需的,因为VBA可以理解十六进制字符串并将其自动转换为Long
。