实例需求:如下数据表格中,E列和第6行为求和公式,现需要将红色框中的8个单元格区域设置背景色。
这个需求不算复杂,变量单元格就可以实现,示例代码如下。
Sub demo1()
For Each c In [a1].CurrentRegion
If c.HasFormula Then c.Interior.Color = vbGreen
Next
End Sub
运行代码结果如下图所示。
【代码解析】
使用For…Next循环遍历单元格区域,[a1].CurrentRegion
取得表格区域。
如果单元格有公式,则HasFormula
属性返回值为True,进而设置单元格背景色为绿色。
如果数据表中单元格较多,那么循环遍历的方式,效率会比较低,其实可以用更简单的方法获取已经设置公式的单元格区域。示例代码如下。
Sub demo2()
[a1].CurrentRegion.SpecialCells(xlCellTypeFormulas, 23).Interior.Color = vbYellow
End Sub
运行代码结果如下图所示。
【代码解析】
单行代码将可以实现同样的效果,SpecialCells(xlCellTypeFormulas, 23)
可以轻松定位有公式的单元格区域,设置单元格背景色的代码与上述过程类似。