我有一张桌子,其中一些细胞变灰了。我想编写一个代码,在单击时自动将单元格变为白色,并在输入内容时保持这种状态。如果没有输入任何内容,它将返回灰色。目前我有:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Temp As Range
If Range(“Temp”).Value = "" Then
Range("Temp").Interior.Pattern = xlGray25
'If the cell is gray, it turns it white when clicked on. This part works fine
If Target.Interior.Pattern = xlGray25 Then
Target.Interior.Pattern = xlSolid
‘Labels the changed cell as “Temp” so it can be referenced
ThisWorkbook.Names.Add “Temp”, Target
End If
End Sub
然而,
If Range("Temp").Value = "" Then
行出现不匹配错误。我试过没有.value和设置" Temp"到特定的细胞,但都不起作用。我检查的所有其他来源都说应该是引用命名单元格的正确方法。任何帮助将不胜感激。
答案 0 :(得分:2)
我建议您使用模块级变量来跟踪之前的选择。
Private mrPrevious As Range
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not mrPrevious Is Nothing Then
'If IsEmpty(mrPrevious.Value) Then
If IsEmpty(mrPrevious.Cells(1).Value) Then
mrPrevious.Interior.Pattern = xlGray25
End If
End If
If Target.Interior.Pattern = xlGray25 Then
Target.Interior.Pattern = xlSolid
End If
Set mrPrevious = Target
End Sub
答案 1 :(得分:0)
不需要VBA。请阅读“条件格式”。它位于Home功能区中间的Style组中。