excel - 每次某个单元格更改时创建一个新的日期戳?
问题描述
我有一个表示项目状态的单元格,并且此状态会经常更改。
每当状态发生变化时,我想要一行来说明状态变化的时间和新状态的名称。
我几乎没有使用 VBA 的经验,因此将不胜感激。到目前为止,我有这个:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 And Target.Row = 4 Then
Target.Offset(10, 3) = Format(Now(), "YYYY-MM-DD HH:MM:SS")
End If
End Sub
每当单元格 D4 中包含的状态发生更改时,此代码成功地在单元格 G7 中列出时间,但它总是重新填充相同的单元格,我希望每个连续的状态更改都列出单元格 G8 中的日期戳,然后是 G9,然后是 G10,等等上。
它也没有列出状态单元格 D4 的更改内容,理想情况下,我希望将其列在 F7、F8、F9 等中。
解决方案
- 如果你只对一个
Worksheet_Change
on cell感兴趣D4
,可以使用Intersect
如下所示的方法 - 要开始运行列表,您需要确定最后使用的单元格
Column G
并相应地偏移
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("D4")) Is Nothing Then
Dim LR As Long: LR = Range("G" & Rows.Count).End(xlUp).Offset(1).Row
Target.Offset(LR - Target.Row, 3) = Format(Now(), "YYYY-MM-DD HH:MM:SS")
Target.Offset(LR - Target.Row, 4) = Target
End If
End Sub
推荐阅读
- python - 在特定子字符串之后打印所有内容
- python - OpenCV Python中的轮廓对象检测和提取
- xcode - Xcode 10.1:如何从这个位置导出我的存档?
- python - 将 scipy.ndimage.map_coordinates 中的插值方法设置为最近和双线性
- powerquery - 读取 csv 的前 n 行而不在 Power Query 中解析整个文件
- c# - 不显示页面 403 - 禁止:发布到 IIS 时访问被拒绝
- r - 无法从 Github 安装 R 包
- github - 在带有 github 推送事件的代码构建中,git 显示 -s 错误消息致命:无法解析提交
- sql - 如何使用 Flink 1.9 LAST_VALUE?
- javascript - React Natvie 按钮和 textInput 不起作用