excel - 如何仅在输入特定值时创建时间戳
问题描述
我正在尝试编写一个子程序,当在 I 列中输入文本“YES”时,它会在 J 列中创建一个时间戳。
现在我有一个工作子,当 I 列中的单元格发生更改时,它会在 J 列中创建一个时间戳。但到目前为止,我试图改变这个子以符合上述标准的尝试都失败了。你能给我建议或指出正确的方向吗?
Private Sub Worksheet_Change(ByVal Target As Range)
Dim speakRange As Range
Dim timeSpeakRange As Range
Set speakRange = Range("I3:I1000")
If Intersect(Target, speakRange) Is Nothing Then Exit Sub
'Stop
Application.EnableEvents = False
'column for timestamp
Set timeSpeakRange = Range("J" & Target.Row)
'Determine if the input date/time should change
If timeSpeakRange .Value = "" Then
timeSpeakRange .Value = Date
End If
'Turn events back on
Application.EnableEvents = True
End Sub
解决方案
否定你的陈述,而不是提前退出。从那里,运行简单的检查,Target = "YES"
如果是,访问右侧的单元格以Offset(0, 1)
添加日期。
您可能需要格式化日期并查看下面的@BigBen 评论以进行理想的错误处理
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("I:I")) Is Nothing Then
If Target = "YES" Then
Application.EnableEvents = False
Target.Offset(, 1) = Date
Application.EnableEvents = True
End If
End If
End Sub
推荐阅读
- ios - 在 GPU 和 UIActivityIndicator 上使用 CoreImage
- perforce - 在 Perforce 中,如何将流中的文件移动到不同的仓库?
- netsuite - 创建发票后在客户记录中设置字段值
- android - 如何让recyclerview加载所有itemviews
- notepad++ - 记事本++中包含符号的单词前的新行
- c++ - 编写构造函数/析构函数是一种好习惯吗?
- python-3.x - 如果我在带括号的列表中有重复项,我该怎么办
- adobe-brackets - 括号实时预览突然不工作
- java - 如何在我的 Google Glass 应用中录制视频?
- sql - 尝试连接到 Azure 中的 SQL 服务器时在 signalR ASP.NET 中出错