用public定义一个变量,通过worksheet_selection change事件来获取并存放活动单元格的背景颜色或字体颜色,在worksheet_change事件中,首先获取更改前的单元格值,判断是不是指定的颜色,如果是,则用原来的值覆盖刚修改后的值,就可以达到你要的效果。
你这个不行,即使用VBA也不行,因为,对样式的改变,VBA没有相应的触发事件可以识别到
可以想想其它的方法,比较双击单元格,鼠标右键单击单元格等,这些事件VBA可以识别到,并可以写触发事件的代码,解开工作表保护,改变目标单元格的锁定属性,再使工作表保护
excel2007 没有这样的功能。
锁定单元格