我看到许多用户提出问题,试图使用用户定义的函数更改单元格的颜色。我一直觉得不可能这样做。我的理解是,用户定义的函数不能更改单元格的任何属性,除了包含公式的单元格的值。潜艇是改变细胞本身的东西。
但是,当使用一些代码来测试这一点时,我发现情况并非总是如此。
使用简单的代码:
Function ColorCell(rng As Range)
If rng.Value = 1 Then
ColorCell = False
Else
ColorCell = True
rng.Interior.ColorIndex = 3
End If
End Function
如果我将函数输入到单元格中,我会得到预期的结果,没有单元格改变颜色。但是,如果我使用“公式”>“插入函数”按钮并导航到我的公式以这种方式插入它,它确实会为目标单元格着色。
这怎么可能?为什么以不同方式输入时该函数的行为会有所不同?
编辑:这是使用 Excel 2007 进行测试的
最佳答案
使用此代码...只需替换工作表名称并尝试
Sheets("sheet_name").range(j:j).clear
for j=2 to 15
if Sheets("sheet_name").Cells(j, 1).value=1 then
else
Sheets("sheet_name").Cells(j, 1).Interior.ColorIndex = 3
next j
关于vba - 用户定义的函数来改变单元格的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30539109/