我如何检测表格中某一列单元格填充颜色的变化,我曾尝试使用 OnChange 类似方法;
Worksheet_Change(ByVal Target As Range)
......
If Not Intersect(Target, Me.ListObjects("tbl_City").ListColumns(2).DataBodyRange) Is Nothing Then
但这似乎不适用于格式更改。有没有办法检测单元格值和/或其填充的变化。
答案1
当单元格格式类型改变时不会触发任何事件。
触发的条件一般是数值的变化。
作为一种解决方法,您可以捕获选择操作以获取单元格的预更改状态,每当选择一个单元格时,您都会获取该单元格的格式和地址,并检查前一个单元格的地址和格式 VS 前一个单元格的现在格式。因此,如果前一个单元格的格式现在与上次捕获时的格式不同,则表明它已被更改。
您可以参考下面类似的情况:
https://stackoverflow.com/questions/21342408/how-to-detect-changes-in-cell-format