我见过许多用户在尝试使用用户定义的函数更改单元格颜色时提出问题.我总是认为不可能这样做.我的理解是,除了包含公式的单元格的值之外,用户定义的函数不能更改单元格的任何属性.Subs是改变细胞本身的东西.
但是,在玩一些代码来测试时,我发现情况并非总是如此.
使用简单的代码:
Function ColorCell(rng As Range)
If rng.Value = 1 Then
ColorCell = False
Else
ColorCell = True
rng.Interior.ColorIndex = 3
End If
End Function
Run Code Online (Sandbox Code Playgroud)
如果我将函数输入单元格,我实现了预期的结果,没有单元格改变颜色.但是,如果我使用公式>插入函数按钮并导航到我的公式以这种方式插入它,它会为目标单元格着色.
这怎么可能,为什么在以不同方式输入时功能表现不同?
编辑:这是使用Excel 2007测试的