记录单元格中存放过的数据

如果我们能够记录单元格中曾经放置过的数据,就可以清楚地看到该单元格的编辑痕迹。如图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)

相关推荐