今天,应网友的请求,俺来个大家制作一个实例。
一、问题的需求
如果我们发一个Excel表给同事或网友以做调查之用,当别人修改该Excel工作薄中的任何一个工作表的任何一个单元格的值的时候,对应的单元格的背景颜色就会发生改变,变成红色或其他颜色的!
这样一来,当他们再次把这个表交给我们的时候,我们就可以直观的看出,对方修改了哪些单元格了。
详细的操作方法或具体步骤
二、问题的解决办法
关于这个问题,只能使用VBA来做,下面,是俺给大家做的一个非常实用的也很简单的通用的方法。
三、实例制作
假如,工作薄中存在这样的一个工作表

在这个工作薄的任何一个工作表,只要对方修改了哪个单元格的值,其值与原来的不一样,那么,对应单元格的背景颜色就会变成红色的。
以下是制作的过程,请您认真仔细的看了,否则会功亏一篑。
在工作表激活的状态下,按下“Alt+F11”组合键,弹出Microsoft Visual Basic窗口,如下图!

然后,如上图一样,找到ThisWorkbook点击右键,选择“查看代码”,之后,会弹出如下图的代码编写窗口。

上图中,请先选择好“通用”对象名,之后,直接输入上述被选中的代码。
最后,紧跟着直接输入如下的代码,以完成上述的所有代码的输入:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
MyRow=Target.Row
MyColumn=Target.Column
MyNewValue=Cells(MyRow, MyColumn).Value
If (MyNewValue <> MyOldValue) Then
Cells(MyRow, MyColumn).Interior.ColorIndex=3
End If
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
MyRow=Target.Row
MyColumn=Target.Column
MyOldValue=Cells(MyRow, MyColumn).Value
End Sub
代码输入完成之后,请在Microsoft Visual Basic窗口中进行保存操作,现在,整个代码输入过程就完成了,并且,可以直接使用了。

返回到Excel窗口,现在,就来验证一下您的代码吧!
比如,我们试图将“大众三七网”改成“文山三七”;试图将“2009-8-1”改成“2119-8-1”,那么,这两个单元格的值与原来的就不一样了,因此,它们的背景颜色自然就会自动变成红色的了。
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
