excel图表如何记录指定单元格每次修改的时间?

网友投稿 1011 2022-10-19

excel图表如何记录指定单元格每次修改的时间?

Q:我想要在用户修改工作表指定单元格的内容时,在另一工作表中记录修改的时间。例如,在工作表Sheet1的单元格B2中,每次用户将该单元格值修改为某一大于0的数值时,则在工作表LogB2中记录下其修改的时间。

excel图表如何记录指定单元格每次修改的时间?

具体地说,如果在2019年10月24日19时30分30秒,用户将单元格B2中的值修改为280,那么在工作表LogB2中记录下时间2019-10-24 19:30:30;如果在2019年10月25日8时10分15秒又将单元格B2中的值修改为100,那么工作表LogB2中增加一条时间记录2019-10-25 8:10:15。

A:这可以使用工作表事件来完成。

打开VBE,双击工作表Sheet1对象模块,输入代码:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim rngInput As Range

Dim rngLog As Range

‘要记录其修改时间的单元格

Set rngInput = Range(“B2”)

‘确定单元格是目标单元格

If Intersect(rngInput, Target.Cells(1, 1)) Is Nothing Then Exit Sub

‘修改为小于0的值不记录

If rngInput.Value <= 0 Then Exit Sub

‘将修改单元格时的时间记录到工作表LogB2

With Worksheets(“LogB2”)

‘工作表最后一行

Set rngLog = .Cells(.Rows.Count,1).End(xlUp)

‘确定工作表最后一行单元格含有值

If Len(rngLog.Value) > 0 Then

‘移至下方相邻的空单元格

Set rngLog = rngLog.Offset(1, 0)

End If

End With

‘写入当前时间

rngLog.Value = Now

End Sub

Q:我想增加记录另一个单元格的修改时间,例如单元格D2每次修改的值大于0时,将修改的时间记录到工作表LogD2中,如何编写代码?

A:同样使用工作表事件来完成。

打开VBE,双击工作表Sheet1对象模块,输入代码:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim rngLog As Range

Dim wksLog As Worksheet

‘根据所修改的单元格

‘赋值相应的工作表

Select Case Target.Cells(1, 1).Address

Case “$B$2”

Set wksLog =Worksheets(“LogB2”)

Case “$D$2”

Set wksLog =Worksheets(“LogD2”)

Case Else

Exit Sub

End Select

‘如果修改的值小于0则不记录修改时间

If Target.Cells(1, 1).Value <= 0 ThenExit Sub

With wksLog

‘工作表数据所在的最后一行

Set rngLog = .Cells(.Rows.Count, 1).End(xlUp)

‘如果最后一个数据单元格包含值

If Len(rngLog.Value) > 0 Then

‘偏移到下方相邻单元格

Set rngLog = rngLog.Offset(1, 0)

End If

End With

‘写入当前时间

rngLog.Value = Now

End Sub

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:wps中鼠标指针有几种?wps鼠标指针的形状及含义
下一篇:wps怎么让表格第一行不动?wps怎么让表格的任意行列不动?
相关文章