在EXCEL中,想在A列中输入数据,在B列同一行自动显示当时系统日期,
是参考这个宏的方法:PrivateSubworksheet_Change(ByValTargetAsRange)IfTarget.Column=1ThenSheet1.C...
是参考这个宏的方法:
Private Sub worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then Sheet1.Cells(Target.Row, 2) = Now()
End Sub
但是我想同时在E列显示D列数据输入或修改的系统时间?要求是静态的不会自动更新的。宏代码是怎样的?请各路大神帮忙。 展开
Private Sub worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then Sheet1.Cells(Target.Row, 2) = Now()
End Sub
但是我想同时在E列显示D列数据输入或修改的系统时间?要求是静态的不会自动更新的。宏代码是怎样的?请各路大神帮忙。 展开
3个回答
展开全部
Private Sub worksheet_Change(ByVal Target As Range)
Dim c As Integer
If Target.Column = 1 Then
c = Target.End(xlToRight).Column
If Target.Offset(, 1) = "" Then
Target.Offset(, 1) = "创建日期:" & Date
Else
Cells(Target.Row, c + 1) = "修改日期:" & Date
End If
End If
Range("b:iv").EntireColumn.AutoFit
End Sub
此代码并非完全是你要的功能。只是参照。如果修改有疑问,再追问
——————————————————————————————————
按你补充的问题。假设你在D列输入数据。E列显示创建日期,F列显示最后修改日期。
Private Sub worksheet_Change(ByVal Target As Range)
If Target.Column = 4 Then
If Target.Offset(, 1) = "" Then
Target.Offset(, 1) = "创建日期:" & Date
Else
Target.Offset(, 2) = "最后修改日期:" & Date
End If
End If
Range("d:f").EntireColumn.AutoFit
End Sub
Dim c As Integer
If Target.Column = 1 Then
c = Target.End(xlToRight).Column
If Target.Offset(, 1) = "" Then
Target.Offset(, 1) = "创建日期:" & Date
Else
Cells(Target.Row, c + 1) = "修改日期:" & Date
End If
End If
Range("b:iv").EntireColumn.AutoFit
End Sub
此代码并非完全是你要的功能。只是参照。如果修改有疑问,再追问
——————————————————————————————————
按你补充的问题。假设你在D列输入数据。E列显示创建日期,F列显示最后修改日期。
Private Sub worksheet_Change(ByVal Target As Range)
If Target.Column = 4 Then
If Target.Offset(, 1) = "" Then
Target.Offset(, 1) = "创建日期:" & Date
Else
Target.Offset(, 2) = "最后修改日期:" & Date
End If
End If
Range("d:f").EntireColumn.AutoFit
End Sub
更多追问追答
追问
先谢谢大师的热心的回答,
可能第2句我们把意思说清楚:意思是
1,在B列显示A列数据输入数据的日期:如A2输入姓名B2显示姓名录入时的系统日期;年月日
2,在E列显示D列数据输入数据的时间;如D列输金额10元E列显示金额录入时的系统时间:几点几分
是静态的日期和时间,如果不修改输入数据不要自动更新。达到以上要求就可以了。
追答
Private Sub worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then Target.Offset(, 1) = Date
If Target.Column = 4 Then Target.Offset(, 1) = Format(Now, "hh:mm:ss")
Range("a:f").EntireColumn.AutoFit
End Sub
展开全部
D列输入数据,E列显示时间?好办!!!
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 Then Target.Offset(, 1) = Format(Now, "yyyy-mm-dd hh:mm:ss")
End Sub
你还可参看我以前的一个解答:
http://zhidao.baidu.com/question/413261961.html?oldq=1
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 Then Target.Offset(, 1) = Format(Now, "yyyy-mm-dd hh:mm:ss")
End Sub
你还可参看我以前的一个解答:
http://zhidao.baidu.com/question/413261961.html?oldq=1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
当中一句换成:
If Target.Column = 1 Or Target.Column = 4 Then Target.Offset(, 1) = Now
If Target.Column = 1 Or Target.Column = 4 Then Target.Offset(, 1) = Now
追问
先谢谢大师的热心的回答,
我把意思说清楚:
1,在B列显示A列数据输入数据的日期:如A2输入姓名B2显示姓名录入时的系统日期和时间;年月日几时几分。
2,在E列显示D列数据输入数据的时间;如D2输金额10元E2显示金额录入时的系统时间:几点几分,这与B列的时间是不同的。因为D列输入肯定比A列输入时间要慢很多。
是静态的日期和时间,如果不修改输入数据不要自动更新。达到以上要求就可以了。
追答
这句代码应该符合你的要求,你试了吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询