【发布时间】:2020-12-04 15:02:06
【问题描述】:
我正在尝试在工作表中创建一个选择更改事件,如果单元格中有值,则将该单元格的内部颜色删除为无。但是,如果没有值,则保持原来的内部颜色相同。而且,我如何将选择更改事件限制为仅特定列(当然减去空单元格)。到目前为止我能想出的 vba 代码是:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Value <> "" Then
Target.Interior.Color = xlNone
Else
Target.Interior.Color = 13551615
End If
End Sub
但是,当我在单元格中输入一些数据时,内部颜色并没有变为无。只有当我点击离开并重新点击该单元格时,内部颜色才会变为无。我需要做些什么来使更改立即生效,这样我就不必单击离开并单击返回?另外,如何写入限制以仅允许在特定列而不是整个工作表中发生此选择更改?
【问题讨论】:
-
为什么不使用条件格式?
-
因为我试图通过宏来自动化这个过程。条件格式意味着我必须手动选择数据,单击条件格式按钮,然后指定要格式化的条件。