开始输入时更改文本的颜色

时间:2014-09-29 11:55:51

标签: excel vba

我在excel文件中有一个搜索功能,我有一个灰色的提示。 “输入要搜索的单词”。 我希望提示是灰色的,只要它具有单元格“D9”中的默认文本,但是一旦你开始输入其他内容,它应该将颜色更改为黑色。此外,如果单元格“D9”为空,则应填写默认提示文本。当我开始在“D9”中输入内容时,除了应该变为黑色的部分外,我有一个解决方案。

我该怎么做?

这是代码:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If [D9].Value = "" Then
    [D9].Value = "Skriv in sökord och tryck enter eller sök"
    [D9].Font.ColorIndex = 15
Else
End If


If [D9].Value = "Skriv in sökord och tryck enter eller sök" Then
    [D9].Font.ColorIndex = 15
Else
    [D9].Font.ColorIndex = xlAutomatic
End If

End Sub

2 个答案:

答案 0 :(得分:0)

在提交更改之前,没有办法捕获单元格内容的更改,因此您无法在用户键入时更改颜色。如果您在提交后可以更改颜色,那么您应该使用Worksheet_Change事件。

如果您必须实时更改颜色,则应使用TextBoxKeyDownKeyPress个事件

答案 1 :(得分:0)

万岁!有可能!!

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set objD9 = Range("D9")

If objD9.Value = "" Then
objD9.Value = "default"
objD9.Font.ColorIndex = 15
ElseIf (objD9.Value <> "default") Then
objD9.Font.ColorIndex = 5
End If

If Not Intersect(Target, objD9) Is Nothing Then
objD9.Value = ""
objD9.Font.ColorIndex = 5
End If
Set objD9=Nothing
End Sub