使用数据时间戳和值跟踪单元格的值变化

时间:2019-09-05 09:34:19

标签: excel vba

我目前正在使用Excel VBA上的需求管理工具。

在G列中,我有需求的状态(待办,待处理,进行中,已完成),在M列中,我想在用户更改值时自动跟踪状态的变化。

我要获取的是类似“状态从...更改为”和[状态t]和“至”和[状态t + 1]和“开启”和[时间戳记]之类的内容 示例:“状态从进行中的状态更改为在2019/09/05-15:30完成”

我是VBA的初学者,所以我不知道从哪里开始此任务...

谢谢!

1 个答案:

答案 0 :(得分:0)

您需要将代码附加到sheet_change事件。每次工作表更改时都会调用此方法。代码需要检查已更改的单元格是否在目标列(G)中,如果是,请将适当的值写入M列中的相邻单元格中。要将代码附加到事件中,必须将其附加到目标的工作表模块中适当的表。通过按Alt-F11启动VB编辑器。在项目浏览器中,双击适当的工作表以打开工作表模块。将以下代码粘贴到该模块中。

Private Sub Worksheet_Change(ByVal Target As Range)
if target.column = 7 then 'if column G then...
   Application.EnableEvents = false 'stop tracking changes
   Cells(target.row,13) = "State changed on " & format(date(),"yyyy/mm/dd hh:mm")
   Application.EnableEvents = true 
End If
End Sub