分享

VBA实用小程序13:记录单元格中存放过的数据

 L罗乐 2018-04-20


如果我们能够记录单元格中曾经放置过的数据,就可以清楚地看到该单元格的编辑痕迹。如图1所示,在工作表Sheet1的单元格批注中,显示出该单元格中所有存放过的数据,包括当前正存放的数据。

 


1

 

在工作表Sheet1的代码模块中,输入的代码如下:

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim str AsString

   '存储输入的数据

    str =Sheet2.Range(Target.Address) & Target & ' , '

   Sheet2.Range(Target.Address) = str

    '清除多于一个单元格导致的错误

    On ErrorResume Next

    '不能覆盖已存在的批注

   Target.ClearComments

   '添加单元格批注

    WithTarget

         '当值改变量获取前一个值

       .AddComment

       .Comment.Visible = False

       .Comment.Text Text:='本单元格中依次输入的值是: ' _

               & Left(Sheet2.Range(Target.Address), _

               Len(Sheet2.Range(Target.Address)) - 3)

    End With

End Sub

 

使用下面的代码,可以只显示该单元格中上次存放的数据。

Private Sub Worksheet_SelectionChange(ByVal TargetAs Range)

    '将前一个值复制到另一个工作表相对应的单元格中

   Sheet2.Range(Target.Address) = Target

End Sub

 

Private Sub Worksheet_Change(ByVal Target As Range)

    '清除多于一个单元格导致的错误

    On ErrorResume Next

    '不能覆盖已存在的批注

   Target.ClearComments

    WithTarget

         '当值改变量获取前一个值

       .AddComment

       .Comment.Visible = False

       .Comment.Text Text:='单元格中上次输入的值是: ' & _

           Sheet2.Range(Target.Address)

    End With

End Sub

 

代码运行后的结果如图2所示。


2

 

注意,代码要放置在工作表代码模块中,本例是放置在工作表Sheet1代码模块中。Worksheet_SelectionChange事件发生在由当前单元格转移到的下一个单元格中,例如当前单元格为A1,下一个单元格为A2,那么该事件发生在单元格A2中。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多